在我的项目,我想从非官方的OpenGL SDK使用freeglut库。
我用Premake生成构建文件的VS2010。 然后,我建立的所有库(调试)。 在项目中,我设置附加包含目录,为freeglut附加库目录。 在附加依赖我加freeglutD.lib。
在代码中,我只是包括freeglut头。 当我要运行的程序中,我得到一个错误:
>LINK : fatal error LNK1104: cannot open file 'freeglut.lib'.
该freeglutD.lib是唯一的文件sdk/freeglut/lib
。 没有freeglut.dll
和freeglut.lib
的SDK。
早些时候,我使用freeglut 2.8.0 MSVC套餐链接该动态链接(含freeglut.dll),一切工作正常。
怎么了 ?
我的猜测是,你忘了从文档这些线路上使用SDK:
您还需要一些#define语句添加到您的命令行。 这些是:
- FREEGLUT_STATIC
- _LIB
- FREEGLUT_LIB_PRAGMAS = 0
你需要一个FREEGLUT_STATIC
让GLUT知道,它的静态链接。 否则,它会查找DLL。
我从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"