Linker freeglut错误LNK1104
在我的项目中,我想使用非官方opengl sdk中的freeglut库 我使用Premake为vs2010生成生成文件。然后我构建了所有库(调试)。在我的项目中,我为freeglut设置了额外的Include目录、额外的库目录。在其他依赖项中,我添加了freeglutD.lib 在代码中,我只包含一个freeglut头。当我想运行程序时,我得到一个错误: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
>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所必需的()。