__glewBindBuffer编译错误

时间:2017-06-21 06:10:28

标签: c++ glew openscenegraph

我一直在尝试在我的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 

任何解决此问题的指示都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

库问题的典型排序。将pkg-config ...放在-losg...库之后(将其作为该行的“最后一个”可能很好)。

在gnu(和其他典型的“Unix / Linux”)工具链中,库按它们出现的顺序“使用”,因此只会满足在给定链接的库之前发现的未解析符号点。由于(据我所知)OSG库使用GLEW,GLEW库必须在OSG之后。