2012-08-14 109 views
4

在我的項目中,我想使用非官方的opengl sdk中的freeglut庫。Freeglut錯誤LNK1104

我使用Premake爲vs2010生成構建文件。然後我建立了所有庫(調試)。在我的項目中,我爲freeglut設置了其他包含目錄,附加庫目錄。在額外的依賴項中,我添加了freeglutD.lib。

在代碼中我只包含一個freeglut頭文件。當我要運行的程序中,我得到一個錯誤:

>LINK : fatal error LNK1104: cannot open file 'freeglut.lib'. 

的freeglutD.lib是sdk/freeglut/lib唯一的文件。 sdk中沒有freeglut.dllfreeglut.lib

早些時候我使用freeglut 2.8.0 MSVC包來自link,它是動態鏈接的(包含freeglut.dll),一切正常。

出了什麼問題?

回答

4

我的猜測是,你忘了從文檔這些線路上使用SDK:

You will also need to add some #defines to your command line. These are:

  • FREEGLUT_STATIC
  • _LIB
  • FREEGLUT_LIB_PRAGMAS=0

你需要一個FREEGLUT_STATIC讓GLUT知道,它的靜態鏈接。否則它會查找一個DLL。

+0

謝謝傑森,'FREEGLUT_STATIC'解決了我的鏈接器錯誤;此外,我還必須提供'-lgdi32'和'-lwinmm',這似乎是在MinGW設置中靜態鏈接FreeGLUT所必需的(http://www.transmissionzero.co.uk/computing/using-glut-with-mingw /)。 – legends2k 2013-01-13 15:45:20

0

我有一個來自VS12的舊項目,並且在VS15中升級後嘗試構建它時得到了相同的LNK1104錯誤。我不得不這樣做,以解決該問題,運行程序包管理器控制檯(工具 - NuGet包管理器),然後鍵入:

Install-Package freeglut 

注意,我在我的頭的一個參考glew.h和freeglut.h這樣的文件:

#include "..\packages\nupengl.core.0.1.0.1\build\native\include\GL\glew.h" 
#include "..\packages\nupengl.core.0.1.0.1\build\native\include\GL\freeglut.h" 
相關問題