2014-10-06 130 views
0

我在Eclipse上遇到了設置SFML的錯誤。我完全按照說明操作,但仍然收到這些錯誤。我試過TDM SJLJMinGW DW2 - 都給出了不同的未定義的引用。未定義的引用impl

我與sfml庫動態鏈接,並且正確設置了庫的路徑。

這裏有一個我得到:

undefined reference to `_imp___ZN2sf6Window5closeEv' SFMLHelloWorld.cpp /SFMLHelloWorld/src line 15 C/C++ Problem 

所有未定義的引用前綴爲_impl他們。我該如何解決?

+0

好像你沒有正確設置庫路徑。編譯器無法找到某些函數的定義。 – gldraphael 2014-10-06 16:31:28

+0

'我動態鏈接到sfml庫'這些庫是'導入庫'還是'靜態庫'?錯誤中的「imp」意味着「import」。如果你給它鏈接到靜態庫,那麼這是不好的。您需要提供導入庫。 – PaulMcKenzie 2014-10-06 16:31:31

+0

@PaulMcKenzie如何獲取導入庫? – user2030677 2014-10-06 16:37:23

回答

1

如註釋_imp__中所述,表示該鏈接正在尋找一個導入的函數,這意味着它正在尋找一個動態庫。

既然你只是測試了兩個MinGW版本,我假設你不明白它應該如何工作。 MinGW構建不兼容,因此您需要確保您的庫已使用您用於該項目的編譯器構建。 SFML網站上的預建二進制文件是使用較舊的編譯器版本構建的,我不能建議使用這樣的舊編譯器。

我建議你得到MinGW Builds安裝程序來接收最新的編譯器。接下來,您必須按照official tutorial中所述,使用CMake構建SFML,或者如果無法正確構建SFML,也可以使用我的Nightly Builds of SFML,但同樣需要確保使用相同的編譯器。

+0

我下載每晚構建後應該做什麼? – user2030677 2014-10-08 17:55:57

+0

使用[官方教程](http://sfml-dev.org/tutorials/2.1/start-cb.php)並開始自行學習。 – Lukas 2014-10-08 21:28:52