2013-07-22 81 views
0

好的,所以我一直在關注this教程。未定義的引用boost :: system :: generic_category() - 在Windows上使用Eclipse CDT設置Ogre

我建立的一切,告訴(雙重檢查一切),只有我改變的是(步驟10),從

${OGRE_HOME}\boost_1_44 

${OGRE_HOME}\boost 

,因爲在我的食人魔SDK版本(1.81 ),沒有boost_1_44文件夾,只有boost文件夾。

無論如何,正如我所說的,當我嘗試編譯我的程序,我得到這三個錯誤:

undefined reference to boost::system::generic_category() 
undefined reference to boost::system::generic_category() 
undefined reference to boost::system::system_category() 

我曾嘗試添加此:-lboost_system到我的項目。我去了Properties> C/C++ Build> Settings> GCC C++ Compiler> Miscellaneous,並將它添加到現有的標誌,但沒有運氣。

我google了一下,顯然這是唯一可能的解決方案。所以,我問你,如果有人能解釋我(儘可能簡單,請一步一步)如何解決這個編譯器錯誤。

編輯:我使用MinGW作爲編譯器(我用它與MSYS)。

+1

鏈接器路徑中是否有'libboost_system.a'? –

+0

我將它添加到屬性> C/C++構建>設置> MinGW C++鏈接器>庫>庫(-l);但是我得到一個錯誤,說:「找不到-libboost_system.a」。 – TheGhost

+0

再一次,「你有鏈接器路徑上的libboost_system.a」嗎?你*看到*這樣的文件嗎?名爲「libboost_system.a」的文件是否存在於預期的位置? –

回答

4

我在使用CMake和clang的linux中編譯過類似的問題。我通過添加國旗來修復它

-DBOOST_SYSTEM_NO_DEPRECATED 

這個「註釋」出了導致問題的行。我不知道這是否會解決您的錯誤,但它確實解決了我的問題。

(如果使用./configure,也可以添加CPPFLAGS =' - DBOOST_SYSTEM_NO_DEPRECATED'作爲參數)。

+0

感謝您的解決方案。在編寫POV-Ray時,我花費了超過1小時的時間查找錯誤原因 –

相關問題