在我的项目中,我想使用非官方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.dll
和freeglut.lib
。
早些时候我使用了来自link的freeglut 2.8.0 MSVC Package,它是动态链接的(包含freeglut.dll),一切正常。
有什么问题?
答案 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"