【问题标题】:freeglut error LNK1104freeglut 错误 LNK1104
【发布时间】:2012-08-14 14:20:18
【问题描述】:

在我的项目中,我想使用来自非官方 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.dllfreeglut.lib

之前我使用的是来自link 的 freeglut 2.8.0 MSVC 包,它是动态链接的(包含 freeglut.dll)并且一切正常。

怎么了?

【问题讨论】:

    标签: linker freeglut


    【解决方案1】:

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

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

    • FREEGLUT_STATIC
    • _LIB
    • FREEGLUT_LIB_PRAGMAS=0

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

    【讨论】:

    【解决方案2】:

    我有一个来自 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" 
    

    【讨论】:

      猜你喜欢
      • 2012-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多