gerbilvis / gerbil

Gerbil Hyperspectral Visualization and Analysis Framework
http://gerbilvis.org
GNU General Public License v3.0
43 stars 15 forks source link

Build failed on yocto #32

Closed ribalda closed 9 years ago

ribalda commented 9 years ago

http://errors.yoctoproject.org/Errors/Details/18423/

d/shr-core/tmp-glibc/sysroots/qemux86-64/usr/lib/libopencv_core.so.2.4.11 -lboost_program_options-mt /home/jenkins/oe/world/shr-core/tmp-glibc/work/core2-64-oe-linux/gerbil/git-r0/git/gui/dist_view/viewport_drawing.cpp:273: error: undefined reference to 'glEnable' /home/jenkins/oe/world/shr-core/tmp-glibc/work/core2-64-oe-linux/gerbil/git-r0/git/gui/dist_view/viewport_drawing.cpp:274: error: undefined reference to 'glBlendFunc' /home/jenkins/oe/world/shr-core/tmp-glibc/work/core2-64-oe-linux/gerbil/git-r0/git/gui/dist_view/viewport_drawing.cpp:285: error: undefined reference to 'glEnableClientState' /home/jenkins/oe/world/shr-core/tmp-glibc/work/core2-64-oe-linux/gerbil/git-r0/git/gui/dist_view/viewport_drawing.cpp:286: error: undefined reference to 'glVertexPointer' /home/jenkins/oe/world/shr-core/tmp-glibc/work/core2-64-oe-linux/gerbil/git-r0/git/gui/dist_view/viewport_drawing.cpp:362: error: undefined reference to 'glDrawArrays'

I will take a closer look at the end of this week, but until then here you have the report from the yocto aoutbuilder

ypnos commented 9 years ago

This is very unexpected, as we explicitely depend on OpenGL: https://github.com/gerbilvis/gerbil/blob/670e06da516ed51dbae75e41e043900256bdabba/gui/CMakeLists.txt#L5-L6

With Qt5 I plan to use Qt's OpenGL wrapper instead of calling gl* methods directly.

ypnos commented 9 years ago

For debug, I suggest to check the following CMake variables:

OPENGL_INCLUDE_DIR               /usr/include
OPENGL_gl_LIBRARY                /usr/lib64/libGL.so
OPENGL_glu_LIBRARY               /usr/lib64/libGLU.so

The libraries should be linked in the last step, as in this example:

cd /home/johannes/private/sdk-tutorial/foo/gerbil/build/shell && /usr/bin/cmake -E cmake_link_script CMakeFiles/gerbil.dir/link.txt --verbose=1
/usr/bin/c++    -Wall -Wno-long-long -Wno-reorder -pedantic  -O3 -DNDEBUG   CMakeFiles/gerbil.dir/main.cxx.o  -o ../bin/gerbil -rdynamic ../gerbil/core/libcore-lib.a libshell-lib.a -lpthread ../gerbil/tutorial/libtutorial-lib.a ../gerbil/similarity_measures/libsimilarity_measures-lib.a ../gerbil/imginput/libimginput-lib.a ../gerbil/core/libcore-lib.a -ltbb -lboost_system -lboost_filesystem -lQtCore -lQtGui -lboost_thread -lboost_date_time -lboost_chrono /usr/lib/libopencv_videostab.so.2.4.11 /usr/lib/libopencv_ts.a -ldl -lm -lpthread -lrt -lGLU -lGL -ltbb /usr/lib/libopencv_superres.so.2.4.11 /usr/lib/libopencv_stitching.so.2.4.11 /usr/lib/libopencv_contrib.so.2.4.11 /usr/lib/libopencv_nonfree.so.2.4.11 /usr/lib/libopencv_ocl.so.2.4.11 /usr/lib/libopencv_gpu.so.2.4.11 /usr/lib/libopencv_photo.so.2.4.11 /usr/lib/libopencv_objdetect.so.2.4.11 /usr/lib/libopencv_legacy.so.2.4.11 /usr/lib/libopencv_video.so.2.4.11 /usr/lib/libopencv_ml.so.2.4.11 /usr/lib/libopencv_calib3d.so.2.4.11 /usr/lib/libopencv_features2d.so.2.4.11 /usr/lib/libopencv_highgui.so.2.4.11 /usr/lib/libopencv_imgproc.so.2.4.11 /usr/lib/libopencv_flann.so.2.4.11 /usr/lib/libopencv_core.so.2.4.11 -lboost_program_options

(However, in this case gerbil is built with OpenGL, where it shouldn't. So this might also merit some investigation.)

ypnos commented 9 years ago

Fixed in 0623768100925968d7d5eb6489c12de5b8a8b529. Thank you very much for the report and fix!