我正在嘗試編譯我正在處理的小型2D引擎。到目前爲止,這一切都進行得很順利,但自從我加入GLEW以來(因爲我想開始研究片段着色器),測試程序拒絕構建。爲了澄清,我將引擎構建爲一個靜態庫(Mage2D.lib),然後構建一個使用該庫的測試程序。當庫編譯好時鏈接器錯誤(LNK2001)
這是我收到的錯誤:
1>Link:
1> libpng15.lib(pngget.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance
1>LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>Mage2D_D.lib(root.obj) : error LNK2001: unresolved external symbol [email protected]
1>Mage2D_D.lib(root.obj) : error LNK2001: unresolved external symbol [email protected]
1>C:\Users\Jesse\Documents\Visual Studio 2010\Projects\Rose\Debug\MageTest.exe : fatal error LNK1120: 2 unresolved externals
1>
1>Build FAILED.
現在通常我知道這意味着我不包括正確的庫到我的測試程序(glew32.lib)。但是在這裏,這是不可能的,因爲我將glew.c編譯到Mage2D.lib中。 GLEW實際上是Mage2D源代碼的一部分,因爲用四個文件和引擎組成部分的程序似乎很方便。
我在他們的網站上關注了GLEW的指示信,關於如何構建GLEW並將其包含到我的項目中,但我一直收到此錯誤。
這到底是怎麼回事?
是給你的錯誤的唯一GLEW的GLEW功能你正在使用的功能? – Aaron
目前,是的。現在我想簡單地將GLEW添加到我的項目中,並將一些代碼添加到我的引擎的根類的Initialise()函數中。它檢查OpenGL的正確版本是否可用於Shader支持。 (當然,看看GLEW是否會工作!哪個是問題:p) –
前兩個警告是因爲你用不同的設置編譯代碼,/ MD vs/MT尤其重要。這些錯誤是由於讓編譯器相信你將使用glew的DLL版本,但實際上鍊接了靜態庫版本。通常使用#define或/ D –