2017-06-21 186 views
0

我一直在試圖編譯我的Linux機器上的代碼庫(CloudyDay)。在跳過這麼多箍環以實現它之後,我陷入了這個錯誤。__glewBindBuffer編譯錯誤

錯誤 - 未定義的參考`OSG :: GLBufferObject ::擴展:: __ glewBindBuffer(無符號整數,無符號整型)常量」

據我知道,我已經包含頭文件和庫的要求並在用戶指南中提到。

編譯反對 -

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中提取

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 --cflags --libs glew 

-I/usr/include/GL -I/usr/include/libdrm -lGLEW -lGLU -lGL 

任何指針pkg配置結果來解決此將不勝感激。

回答

0

庫問題的典型排序。將pkg-config ...放在-losg...庫之後(可以把它作爲該行的「最後」)。

在gnu(以及其他典型的「Unix/Linux」)工具鏈中,庫按它們出現的順序「使用」,因此只會滿足您在鏈接到庫之前發現的未解決符號給定點。由於(從我所知道的)OSG庫使用GLEW,GLEW庫必須在OSG之後。

+0

Thanks @MatsPetersson。那是我第一次接受解決方案。但不知何故,這並沒有解決問題。 – PaperMoon

+0

然後用你現在正在做的事情來更新你的問題,並解釋這個問題是什麼 - 因爲你的帖子包含的內容看起來就是這個問題 - 我只能按照我在問題本身看到的內容去做。 –

+0

完成後,更新了帖子中的Makefile條目。它反映了我在這個階段的最新設置。 – PaperMoon