Linker freeglut错误LNK1104

Linker freeglut错误LNK1104,linker,freeglut,Linker,Freeglut,在我的项目中,我想使用非官方opengl sdk中的freeglut库 我使用Premake为vs2010生成生成文件。然后我构建了所有库(调试)。在我的项目中,我为freeglut设置了额外的Include目录、额外的库目录。在其他依赖项中,我添加了freeglutD.lib 在代码中,我只包含一个freeglut头。当我想运行程序时,我得到一个错误: >LINK : fatal error LNK1104: cannot open file 'freeglut.lib'. free

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

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

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

>LINK : fatal error LNK1104: cannot open file 'freeglut.lib'. 
freeglutD.lib是
sdk/freeglut/lib
中唯一的文件。sdk中没有
freeglut.dll
freeglut.lib

之前我使用的是freeglut 2.8.0 MSVC包,从中动态链接(包含freeglut.dll),一切正常


怎么了?

我猜您忘记了使用SDK文档中的以下几行内容:

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

  • FREEGLUT_静态
  • _解放党
  • FREEGLUT\u LIB\u PRAGMAS=0

您需要使用
FREEGLUT\u STATIC
让GLUT知道它是静态链接的。否则它会查找DLL。

我有一个来自VS12的旧项目,在VS15中升级后尝试构建它时遇到了相同的LNK1104错误。我所要做的就是运行包管理器控制台(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" 

谢谢Jason,
FREEGLUT\u STATIC
解决了我的链接器错误;此外,我还必须给出
-lgdi32
-lwinmm
,这似乎是在MinGW设置中静态链接FreeGLUT所必需的()。