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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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