2014-01-23 54 views
0

我試圖使用GLE tubing and extrusion library用於個人OpenGL的項目,但我堅持了以下錯誤:鏈接錯誤LNK2001:無法解析的符號glePolyCylinder

error LNK2001: unresolved external symbol "void __cdecl glePolyCylinder(int,double (* const)[3],float (* const)[3],double)" ([email protected]@[email protected]) 

我使用VS 2013快編譯。我創建了一個空項目並將GLE源代碼編譯爲.lib文件,然後將此.lib文件與其他依賴關係一起添加到我的主項目中的鏈接器依賴項中(屬性 - >鏈接器 - >輸入 - >其他依賴項) .lib文件我正在使用,我已經包含頭文件:

#include "gle-3.0.0\src\gle.h" 

但我仍然不斷收到錯誤。我究竟做錯了什麼?

+0

您需要鏈接lib – paulm

+0

不會將鏈接庫添加到鏈接器選項,因爲我已經完成了「鏈接」lib?否則,正確的做法是什麼? –

+0

您是否還將庫的路徑添加到VC++目錄 - >庫目錄? – MicroVirus

回答

1

有一對夫婦的事情時,你要包括VS.第三方LIB做

首先,在您的項目屬性中(右鍵單擊VS中的項目名稱),在菜單底部選擇屬性。在對話框中,轉到配置屬性=>鏈接器=>全部

在所有選項下,向上滾動到其他依賴項並添加lib,方法是添加gle32.lib;在kernel32.lib.Options之前。 VS Properties Dialog http://i60.tinypic.com/9kq8ef.jpg

之後,您將不得不將gle32.lib路徑附加到其他庫目錄,您可以爲其提供測試目的的完整路徑,並在正確鏈接時使用宏爲其構建相對路徑。它在附加對話框中有記錄,您可以彈出。

現在,嘗試構建並查看它是否正確鏈接。如果它仍然沒有正確鏈接,請確保檢查您的路徑和lib的名稱等。並且,確保您正在構建使用相同體系結構的gle32.lib的新項目,例如。用於32位解決方案構建配置的32位庫。你不能混用32位和64位的庫。

正如@aledalgrande指出的那樣,您也可以使用#pragma註釋,但這仍然要求您正確設置庫搜索路徑,因此我建議您按照上述說明從項目屬性開始。

另一方面的說明。不要在include指令中使用反斜線(\),因爲Windows和VS會爲您處理正斜槓(/),這使得將代碼移動到其他操作系統變得更加容易,並且確保您不會觸發任何意外的字符串轉義。

祝你好運!

相關問題