5

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

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

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

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

freeglutD.lib 是sdk/freeglut/lib. sdk中没有freeglut.dlland freeglut.lib

早些时候,我使用动态链接的链接中的 freeglut 2.8.0 MSVC 包(包含 freeglut.dll),一切正常。

怎么了 ?

4

2 回答 2

4

我的猜测是您忘记了有关使用 SDK 的文档中的这些行:

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

  • FREEGLUT_STATIC
  • _LIB
  • FREEGLUT_LIB_PRAGMAS=0

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

于 2012-08-25T11:54:14.597 回答
0

我有一个来自 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" 
于 2015-11-21T14:06:46.110 回答