freeglut错误LNK1104

5
在我的项目中,我想使用来自非官方opengl sdk的freeglut库。
我使用Premake生成了vs2010的构建文件。然后我构建了所有库(调试版)。在我的项目中,我设置了Additional Include Directories、Additional Library Directories,针对freeglut。在附加依赖项中,我添加了freeglutD.lib。
在代码中,我只包括了一个freeglut头文件。当我想运行程序时,我收到了一个错误提示:
>LINK : fatal error LNK1104: cannot open file 'freeglut.lib'. 

sdk/freeglut/lib 目录下的 freeglutD.lib 是唯一的文件。在 sdk 中没有 freeglut.dllfreeglut.lib

之前,我使用的是 这个链接 上提供的 freeglut 2.8.0 MSVC 软件包,并动态链接了它(包含 freeglut.dll),一切都正常运作。

出了什么问题?

2个回答

4

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

您还需要将一些 #defines 添加到命令行中。它们是:

  • FREEGLUT_STATIC
  • _LIB
  • FREEGLUT_LIB_PRAGMAS=0

您需要使用 FREEGLUT_STATIC 来让GLUT知道它正在静态链接。否则,它会寻找一个DLL。


谢谢Jason,FREEGLUT_STATIC解决了我的链接错误。此外,在MinGW环境中静态链接FreeGLUT还需要使用-lgdi32-lwinmm,详见(http://www.transmissionzero.co.uk/computing/using-glut-with-mingw/)。 - legends2k

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" 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接