mikrosimage/duke

Trying to build "develop" branch on ubuntu 12.04

fabiencastan opened this issue · 14 comments

Hi,

I don't achieved to build duke "develop" branch on my ubuntu 12.04.
I have installed all dependencies and creates a "user-config.jam" based on the example "config/user-config.jam.linux-example".

Build errors:
http://pastebin.com/GGvzv8Vi

My user-config.jam:
http://pastebin.com/cYLbT8mx

Fabien

Any idea?

Hmm looks weird to me.
Can you try to force a full build in case it's some old files getting caugth in the process ?
./build-linux-gcc.sh --user-config=user-config.jam dist -a

If that does not help, please can you also provide the full compilation log for further investigation ( compilation output with -a ). Thx !

Hey Fabien,

@nrondaud and I just updated develop and removed some libraries. Can you give it one more try whenever you can ?
In this version there is still a lot of unplugged features, so the timeline is not working as well as the colorspace but it should compile and play a dpx sequence out of the box.

A new cmd line flag has been introduced so duke launches the graphical interface and you can use --no-gui to get a bare window without the fancy buttons and widgets.

We will plug back much of the functionnalities ASAP.

I get this error without modification to my user-config.jam.

error: Unable to find file or target named
error: '/user-config//Qt'
error: referred from project at
error: 'src/duke/libraries/dukeengine/dukeengine'

In my user-config.jam, qt4 is defined.
#-----------------------------------------------------------------------------

name : Qt

purpose : GUI framework used by DukeX

website : http://qt.nokia.com

download : http://qt.nokia.com/downloads

#-----------------------------------------------------------------------------
using qt4 : /opt/QtSDK/Desktop/Qt/474/gcc ;

Yes in order to build on MacOSX we had to change the name of the target for Qt, also there's an additional GLEW target.
We updated the corresponding config/user-config.jam.XXX-example so have a look to update yours.

Ok. Done.
Now, I get a new error on a lot of files. Maybe because I'm using boost 1.50.0 ?

gcc.compile.c++ bin/src/duke/app/gcc-4.6/debug/threading-multi/Configuration.o
In file included from /home/fab/dev/extern/boost_1_50_0/boost/system/error_code.hpp:14:0,
from /home/fab/dev/extern/boost_1_50_0/boost/system/system_error.hpp:14,
from /home/fab/dev/extern/boost_1_50_0/boost/thread/exceptions.hpp:22,
from /home/fab/dev/extern/boost_1_50_0/boost/thread/pthread/mutex.hpp:11,
from /home/fab/dev/extern/boost_1_50_0/boost/thread/mutex.hpp:16,
from src/duke/submodules/concurrent_utils/concurrent/details/queue_base.hpp:12,
from src/duke/submodules/concurrent_utils/concurrent/queue.hpp:4,
from src/duke/libraries/dukeapi/dukeapi/MessageQueue.h:5,
from src/duke/libraries/dukeapi/dukeapi/io/InteractiveMessageIO.h:5,
from src/duke/app/Configuration.cpp:9:
/home/fab/dev/extern/boost_1_50_0/boost/system/config.hpp:33:3: erreur: #error Must not define both BOOST_SYSTEM_DYN_LINK and BOOST_SYSTEM_STATIC_LINK

Hmm looks like yes. We're using Boost 1.49.0 right now.

Go back to boost_1_49_0. But now get some linking troubles, libGL and libdl are missing.

gcc.link dist/debug/duke
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glFogfv'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glFogf'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glTexEnvfv'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glClipPlane'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glColor3f'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glGetDoublev'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glStencilFunc'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glXGetCurrentDisplay'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glNormal3fv'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glLightModeliv'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glClearStencil'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glTexGeni'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glTexParameterf'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glDepthMask'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glColorMask'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glVertex3fv'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glScissor'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glLineWidth'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glXQueryExtensionsString'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glPolygonOffset'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glDepthRange'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glColor4fv'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glXGetCurrentContext'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glGetFloatv'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glVertex2f'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glStencilMask'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glLoadMatrixf'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glLightf'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glColorMaterial'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glLightfv'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glGetIntegerv'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glLineStipple'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glTexGenfv'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glPointSize'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glGetBooleanv'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glFogi'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glFrontFace'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glXGetProcAddressARB'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glDepthFunc'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glGetString'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glMaterialf'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glLightModeli'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glTexParameterfv'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glTexEnvf'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glNormal3f'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glCullFace'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glStencilOp'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glDisableClientState'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glPolygonMode'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glLogicOp'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glMaterialfv'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glColorPointer'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glNormalPointer'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glTexEnvi'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glColor3fv'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glLightModelfv'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glVertex2fv'
/usr/lib/i386-linux-gnu/libCgGL.so: error: undefined reference to 'glVertex4fv'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:20: error: undefined reference to 'glGetError'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:69: error: undefined reference to 'glClearDepth'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:70: error: undefined reference to 'glClearColor'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:73: error: undefined reference to 'glEnable'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:74: error: undefined reference to 'glEnable'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:75: error: undefined reference to 'glEnable'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:77: error: undefined reference to 'glShadeModel'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:78: error: undefined reference to 'glDisable'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:79: error: undefined reference to 'glHint'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:80: error: undefined reference to 'glPixelStorei'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:83: error: undefined reference to 'glMatrixMode'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:84: error: undefined reference to 'glLoadIdentity'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:85: error: undefined reference to 'glMatrixMode'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:86: error: undefined reference to 'glClear'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:160: error: undefined reference to 'glEnableClientState'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:161: error: undefined reference to 'glVertexPointer'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:165: error: undefined reference to 'glEnableClientState'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:166: error: undefined reference to 'glTexCoordPointer'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:173: error: undefined reference to 'glEnableClientState'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:179: error: undefined reference to 'glDrawArrays'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:182: error: undefined reference to 'glDrawArrays'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:185: error: undefined reference to 'glDrawArrays'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:188: error: undefined reference to 'glDrawArrays'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:204: error: undefined reference to 'glDrawElements'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:207: error: undefined reference to 'glDrawElements'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:210: error: undefined reference to 'glDrawElements'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:213: error: undefined reference to 'glDrawElements'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:281: error: undefined reference to 'glEnable'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:283: error: undefined reference to 'glDisable'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:286: error: undefined reference to 'glBlendFunc'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:288: error: undefined reference to 'glAlphaFunc'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:300: error: undefined reference to 'glBindTexture'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:303: error: undefined reference to 'glTexParameteri'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:321: error: undefined reference to 'glViewport'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:355: error: undefined reference to 'glClearColor'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:356: error: undefined reference to 'glClear'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLRenderer.cpp:358: error: undefined reference to 'glLoadIdentity'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLTexture.cpp:17: error: undefined reference to 'glGenTextures'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLTexture.cpp:20: error: undefined reference to 'glBindTexture'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLTexture.cpp:21: error: undefined reference to 'glTexImage2D'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLTexture.cpp:23: error: undefined reference to 'glBindTexture'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLTexture.cpp:30: error: undefined reference to 'glDeleteTextures'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLTexture.cpp:39: error: undefined reference to 'glBindTexture'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLTexture.cpp:44: error: undefined reference to 'glTexSubImage2D'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLTexture.cpp:54: error: undefined reference to 'glTexSubImage2D'
src/duke/libraries/dukeengine/dukeengine/renderer/ogl/OGLTexture.cpp:62: error: undefined reference to 'glGetError'
src/duke/submodules/dukeplugins/src/libraries/dukehost/PluginBinary.cpp:84: error: undefined reference to 'dlerror'
src/duke/submodules/dukeplugins/src/libraries/dukehost/PluginBinary.cpp:70: error: undefined reference to 'dlopen'
src/duke/submodules/dukeplugins/src/libraries/dukehost/PluginBinary.cpp:74: error: undefined reference to 'dlclose'
src/duke/submodules/dukeplugins/src/libraries/dukehost/PluginBinary.cpp:78: error: undefined reference to 'dlsym'
collect2: ld a retourné 1 code d'état d'exécution

"g++" -L"/opt/QtSDK/Desktop/Qt/474/gcc/lib" -Wl,-R -Wl,"/opt/QtSDK/Desktop/Qt/474/gcc/lib" -Wl,-rpath-link -Wl,"/home/fab/dev/extern/boost_1_49_0/bin.v2/libs/filesystem/build/gcc-4.6/debug/threading-multi" -Wl,-rpath-link -Wl,"/home/fab/dev/extern/boost_1_49_0/bin.v2/libs/iostreams/build/gcc-4.6/debug/threading-multi" -Wl,-rpath-link -Wl,"/home/fab/dev/extern/boost_1_49_0/bin.v2/libs/program_options/build/gcc-4.6/debug/threading-multi" -Wl,-rpath-link -Wl,"/home/fab/dev/extern/boost_1_49_0/bin.v2/libs/system/build/gcc-4.6/debug/threading-multi" -Wl,-rpath-link -Wl,"/home/fab/dev/extern/boost_1_49_0/bin.v2/libs/thread/build/gcc-4.6/debug/threading-multi" -Wl,-rpath-link -Wl,"/home/fab/dev/other/duke/bin/src/duke/libraries/dukeui/dukeui/gcc-4.6/debug/threading-multi" -Wl,-rpath-link -Wl,"/home/fab/dev/other/duke/bin/src/duke/libraries/protobuf/player/gcc-4.6/debug/threading-multi" -Wl,-rpath-link -Wl,"/home/fab/dev/other/duke/bin/src/duke/libraries/protobuf/playlist/gcc-4.6/debug/threading-multi" -Wl,-rpath-link -Wl,"/home/fab/dev/other/duke/bin/src/duke/libraries/protobuf/serialize/gcc-4.6/debug/threading-multi" -Wl,-rpath-link -Wl,"/usr/lib" -Wl,-rpath-link -Wl,"/usr/lib/i386-linux-gnu" -o "dist/debug/duke" -Wl,--start-group "bin/src/duke/app/gcc-4.6/debug/threading-multi/Configuration.o" "bin/src/duke/app/gcc-4.6/debug/threading-multi/main.o" "/home/fab/dev/extern/boost_1_49_0/bin.v2/libs/program_options/build/gcc-4.6/debug/threading-multi/libboost_program_options.so.1.49.0" "bin/src/duke/libraries/dukeui/dukeui/gcc-4.6/debug/threading-multi/libdukeui.so" "bin/src/duke/libraries/dukeengine/dukeengine/gcc-4.6/debug/link-static/threading-multi/libdukeengine.a" "/usr/lib/i386-linux-gnu/libCgGL.so" "/usr/lib/i386-linux-gnu/libCg.so" "/usr/lib/libGLEW.so.1.5" "bin/src/duke/libraries/dukeapi/dukeapi/gcc-4.6/debug/link-static/threading-multi/libdukeapi.a" "src/duke/submodules/sequenceparser/src/sequence/parser/bin/gcc-4.6/debug/link-static/threading-multi/libsequence_parser.a" "src/duke/submodules/sequenceparser/bin/src/sequence/gcc-4.6/debug/link-static/threading-multi/libsequence.a" "/home/fab/dev/extern/boost_1_49_0/bin.v2/libs/thread/build/gcc-4.6/debug/threading-multi/libboost_thread.so.1.49.0" "src/duke/submodules/dukeplugins/bin/src/libraries/dukehost/gcc-4.6/debug/link-static/threading-multi/libdukehost.a" "/home/fab/dev/extern/boost_1_49_0/bin.v2/libs/filesystem/build/gcc-4.6/debug/threading-multi/libboost_filesystem.so.1.49.0" "/home/fab/dev/extern/boost_1_49_0/bin.v2/libs/system/build/gcc-4.6/debug/threading-multi/libboost_system.so.1.49.0" "/home/fab/dev/extern/boost_1_49_0/bin.v2/libs/iostreams/build/gcc-4.6/debug/threading-multi/libboost_iostreams.so.1.49.0" "/home/fab/dev/extern/boost_1_49_0/bin.v2/libs/chrono/build/gcc-4.6/debug/link-static/threading-multi/libboost_chrono.a" "/home/fab/dev/extern/boost_1_49_0/bin.v2/libs/system/build/gcc-4.6/debug/link-static/threading-multi/libboost_system.a" "bin/src/duke/libraries/protobuf/serialize/gcc-4.6/debug/threading-multi/libserialize_pb.so" "bin/src/duke/libraries/protobuf/playlist/gcc-4.6/debug/threading-multi/libplaylist_pb.so" "bin/src/duke/libraries/protobuf/player/gcc-4.6/debug/threading-multi/libplayer_pb.so" "/usr/lib/libprotobuf.so.7"  -Wl,-Bstatic  -Wl,-Bdynamic -lQtOpenGL -lQtGui -lQtCore -lrt -Wl,--end-group -g -pthread

Launching the g++ command line manually with -lGL and -ldl works. But I don't know how to put it in bjam.

Sweet.
I have an Ubuntu on my laptop so I'll reproduce your installation and change the Boost.Build configuration accordingly.

Thx for your feedback

Well it's weird because I didn't have to do anything special on my Ubuntu to get it working.

I just understand the difference between us... I have changed the default linker to use gold. It doesn't care about link option order but seems more strict...
So, in all case, it could be great to declare all used dependencies.

Indeed switching to gold exhibited the issue.
I opened a new bug report.