我一直在尝试在我的Linux机器上编译代码库(CloudyDay)。在经历了如此多的箍之后,我陷入了这个错误。
错误 - 对`osg :: GLBufferObject :: Extensions :: __ glewBindBuffer(unsigned int,unsigned int)const'
的未定义引用据我所知,我已根据需要包含了标题和库,并在用户指南中提及。
编译 -
OSG 3.0.0,刻录2.0.0,osgHimmel,openGL - Linux Debian发行版,GLEW - Linux Debian发行版
CloudyDay的源代码+用户指南 - https://www.cg.tuwien.ac.at/research/publications/2014/BEHAM-2014-RCR/
Makefile extract
LIBS = -L'/home/local/install_dir/OSG/3.0.0/lib64' -lOpenThreads -losg -losgViewer -losgGA -losgDB -losgUtil -losgText -L'/home/local/install_dir/carve/2.0.0/lib' -lintersect -L'/usr/lib/x86_64-linux-gnu' -ltinyxml2 -L'/home/local/install_dir/osghimmel/osgHimmel/lib' -losgHimmel `pkg-config --libs glew`
CXXFLAGS = -I'/home/local/CloudyDay/include/CloudyDay' -I'/home/local/CloudyDay' -I'/home/local/install_dir/OSG/3.0.0/include' -I'/usr/include' -I'/home/local/install_dir/carve/carve-2.0.0/include' -I'/home/local/install_dir/osghimmel/osgHimmel/include' `pkg-config --cflags glew`
glew的pkg-config结果
$ pkg-config --cflags --libs glew
-I/usr/include/GL -I/usr/include/libdrm -lGLEW -lGLU -lGL
任何解决此问题的指示都将受到赞赏。
答案 0 :(得分:0)
库问题的典型排序。将pkg-config ...
放在-losg...
库之后(将其作为该行的“最后一个”可能很好)。
在gnu(和其他典型的“Unix / Linux”)工具链中,库按它们出现的顺序“使用”,因此只会满足在给定链接的库之前发现的未解析符号点。由于(据我所知)OSG库使用GLEW,GLEW库必须在OSG之后。