2013-03-20 50 views
0

我在i686上運行Linux Mint 12。系統查找錯誤undefined symbol SFML

我正在運行一個使用SFML的程序。我編譯並運行它這樣:

g++ -c lineTest.cpp Rasterizer.cpp simpleCanvas.cpp 
    g++ -o lineTest lineTest.o Rasterizer.o simpleCanvas.o -lsfml-graphics -lsfml-window -lsfml-system 

後,當我嘗試運行程序lineTest,我得到以下錯誤:

$ ./lineTest 
./lineTest: symbol lookup error: /usr/local/lib/libsfml-window.so.1.6: undefined 
symbol: _ZN2sf7Unicode11UTF8OffsetsE 

我沒有使用任何IDE,只是運行一切從命令行。有誰知道我能做些什麼來擺脫錯誤並讓程序運行?

+0

您的sfml二進制文件('.so')是否已更新? – deepmax 2013-03-20 21:45:26

+0

@MM。我剛剛在幾天前安裝了sfml。我如何更新它? – Ataraxia 2013-03-20 23:37:02

回答

3

如果我不得不猜測,我會說你在/ usr/lib和/ usr/local/lib中都有sfml。解碼重整名稱:

> c++filt _ZN2sf7Unicode11UTF8OffsetsE 
sf::Unicode::UTF8Offsets 

所以,libsfml-window.so查找的sf::Unicode::UTF8Offsets功能,但無法找到它。

+0

我剛剛檢查過,是的,我在/ usr/lib /和/ usr/local/lib中都安裝了libsfml庫。我該如何解決?我應該只從一個目錄中讀取libsfml文件嗎?如果是這樣,我應該從哪一個中刪除它們? – Ataraxia 2013-03-25 17:32:28

+0

我剛剛從/ usr/local/lib目錄中刪除了它們,它工作正常。 – Ataraxia 2013-03-25 17:53:21

+1

從/ usr/local/lib中移除是正確的想法,因爲/ usr/lib包含系統庫。 – ismail 2013-03-25 18:16:33