freeglut错误LNK1104

时间:2012-08-14 14:20:18

标签: linker freeglut

在我的项目中,我想使用非官方opengl sdk中的freeglut库。

我使用Premake为vs2010生成构建文件。然后我构建了所有库(调试)。在我的项目中,我为freeglut设置了附加包含目录,附加库目录。在其他依赖项中,我添加了freeglutD.lib。

在代码中我只包含一个freeglut标头。当我想运行该程序时,我收到一个错误:

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

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

早些时候我使用了来自link的freeglut 2.8.0 MSVC Package,它是动态链接的(包含freeglut.dll),一切正常。

有什么问题?

2 个答案:

答案 0 :(得分:4)

我的猜测是你忘记了使用SDK的文档中的这些内容:

  

您还需要在命令行中添加一些#defines。这些是:

     
      
  • FREEGLUT_STATIC
  •   
  • _LIB
  •   
  • FREEGLUT_LIB_PRAGMAS = 0
  •   

你需要FREEGLUT_STATIC让GLUT知道它是静态链接的。否则它会查找DLL。

答案 1 :(得分:0)

我从VS12获得了一个较旧的项目,并且在VS15升级后尝试构建它时遇到了相同的LNK1104错误。所有我需要做的就是运行Package Manager Console(Tools - NuGet Package Manager)并输入:

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"