Problème de linkage avec libGL.so
Bonjour,
J'essaie de compiler un projet d'une quarantaine de fichiers sources sur Ubuntu 11.10 (64 bits).
Les fichiers compilent bien mais lors du linkage j'obtiens une erreur à cause de libGL.so.
Ligne de commande de linkage :
Code:
1 2 3
| g++ -o tracker -L. -L/usr/lib/x86_64-linux-gnu -lm -lgsl -lblas -lGLU -lglut -lGL -L/usr/local/lib64 -lopencv_core -lopencv_imgproc -lopencv_calib3d -lopencv_video -lopencv_features2d -lopencv_ml -lopencv_highgui -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lncurses -lOpenCL -lkdtree
obj/release/edge_tracker/main.o obj/release/edge_tracker/video_thread.o obj/release/edge_tracker/edge_tracker.o obj/release/edge_tracker/surf_thread.o obj/release/edge_tracker/video_tracker_thread.o obj/release/edge_tracker/particle_filter.o obj/release/edge_tracker/inertial_tracker_thread.o obj/release/edge_tracker/particle.o obj/release/edge_tracker/mag_grav_orient.o obj/release/edge_tracker/gl_widget.o obj/release/edge_tracker/gl_canvas.o obj/release/edge_tracker/main_window.o obj/release/edge_tracker/window.o obj/release/edge_tracker/image_processing.o obj/release/edge_tracker/edge_point_matches.o obj/release/edge_tracker/me_masks.o obj/release/edge_tracker/camera.o obj/release/edge_tracker/map_point.o obj/release/edge_tracker/ipt_view.o obj/release/edge_tracker/ipt_map.o obj/release/edge_tracker/ipt_tracker.o obj/release/munkres/munkres.o obj/release/geometry/Mesh.o obj/release/geometry/Quad.o obj/release/geometry/Triangle.o obj/release/geometry/Vertex.o obj/release/geometry/Object.o obj/release/geometry/KDTree.o obj/release/geometry/Ray.o obj/release/geometry/IntersectData.o obj/release/geometry/BoundingBox.o obj/release/geometry/Scene.o obj/release/xsens/example_linux.o obj/release/cl_surf/clutils.o obj/release/cl_surf/eventlist.o obj/release/cl_surf/utils.o obj/release/cl_surf/surf.o obj/release/cl_surf/fasthessian.o obj/release/cl_surf/cvutils.o obj/release/cl_surf/responselayer.o obj/release/edge_tracker/moc_video_thread.o obj/release/edge_tracker/moc_surf_thread.o obj/release/edge_tracker/moc_video_tracker_thread.o obj/release/edge_tracker/moc_inertial_tracker_thread.o obj/release/edge_tracker/moc_gl_widget.o obj/release/edge_tracker/moc_gl_canvas.o obj/release/edge_tracker/moc_main_window.o obj/release/edge_tracker/moc_window.o
libcmt.a -lQtOpenGL -lQtGui -lQtXml -lQtCore |
Voici l'erreur :
Code:
1 2 3 4 5 6
| /usr/bin/ld: obj/release/edge_tracker/edge_tracker.o: undefined reference to symbol 'glDepthFunc'
/usr/bin/ld: note: 'glDepthFunc' is defined in DSO /usr/lib/x86_64-linux-gnu/libGL.so so try adding it to the linker command line
/usr/lib/x86_64-linux-gnu/libGL.so: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
scons: *** [tracker] Error 1
scons: building terminated because of errors. |
Pourtant dans la ligne de commande j'ai bien : -L/usr/lib/x86_64-linux-gnu et -lGLU -lglut -lGL
lorsque je tape la commande : locate libGL.so j'obtiens :
Code:
1 2 3 4 5 6 7 8 9
| /usr/lib/fglrx/libGL.so
/usr/lib/fglrx/libGL.so.1
/usr/lib/fglrx/libGL.so.1.2
/usr/lib/x86_64-linux-gnu/libGL.so
/usr/lib/x86_64-linux-gnu/mesa/libGL.so
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2
/usr/lib32/fglrx/libGL.so.1
/usr/lib32/fglrx/libGL.so.1.2 |
j'ai également fait un export de /usr/lib/x86_64-linux-gnu dans les variables LDFLAGS et LD_LIBRARY_PATH
J'ai bien installé les paquets : fglrx-amdcccle-updates, fglrx-updates, fglrx-updates-dev, libgl1-mesa-dev, libglu1-mesa, libglu1-mesa -dev, libgl1-mesa-glx, libqt4-opengl, libqt4-opengl-dev, pyhton-opengl
D'où vient cette erreur de linkage ?
Bonne journée,
Merci