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 :
Voici l'erreur :
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
Pourtant dans la ligne de commande j'ai bien : -L/usr/lib/x86_64-linux-gnu et -lGLU -lglut -lGL
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.
lorsque je tape la commande : locate libGL.so j'obtiens :
j'ai également fait un export de /usr/lib/x86_64-linux-gnu dans les variables LDFLAGS et LD_LIBRARY_PATH
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 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
Partager