首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Visual试图链接“freeglutd.lib”?

为什么Visual试图链接“freeglutd.lib”?
EN

Stack Overflow用户
提问于 2015-03-17 22:33:45
回答 3查看 19.4K关注 0票数 8

我正在尝试使用Visual 2013编译一个OpenGL程序,但我得到了以下错误:

错误1错误LNK1104:无法打开文件'freeglutd.lib‘.

作为参考,我已经安装了FreeGLUT,并将VS配置为搜索包含文件和库文件的正确目录。事实上,VS认识到过剩包含的文件都很好。我还在附加的依赖项中添加了opengl32.lib和freeglut.lib。

为什么VS要寻找“freeglutd.lib”?它肯定没有在附加的依赖项中列出。我可以通过将'libglut.lib‘重命名为'libglutd.lib’并从依赖项中删除前者来解决编译错误,但我只是好奇为什么会这样。

说到附加的依赖项,添加opengl32.lib实际上是必要的吗?我可以在没有它的情况下编译我的(非常基本的)程序,但是不止一个人说它是必需的,也许是针对旧版本的Visual吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-29 13:50:57

如果您检查freeglut_std.h (freeglutV3.0):

代码语言:javascript
复制
            /* Link with Win32 shared freeglut lib */
#           if FREEGLUT_LIB_PRAGMAS
#               ifdef NDEBUG
#                   pragma comment (lib, "freeglut.lib")
#               else
#                   pragma comment (lib, "freeglutd.lib")
#               endif
#           endif

因此,如果您不定义NDEBUG,链接器将链接到"freeglutd.lib",您可以通过在"PreprocessorDefinitions“中定义NDEBUG来解决这个问题。祝好运!

票数 11
EN

Stack Overflow用户

发布于 2015-03-17 22:42:48

可能已经回答了:freeglut error LNK1104

还有两件事需要检查:

  • 您是在调试还是发布模式下构建的?d在freeglutd.lib的末尾表明它是一个用于调试构建的库
  • 尝试从头创建一个新项目,将一些使用freeGLUT的基本可运行代码放入其中,查看VS是否正确地链接。这还将验证上一个项目的项目文件是否因某种原因而损坏(如@RobertHarvey所建议的那样),还是问题在其他地方。
票数 1
EN

Stack Overflow用户

发布于 2016-04-29 06:15:23

我通过在Debug模式下从生成的freeglut_static解决方案编译freeglut和CMake来解决这个问题- freeglutd是在lib/Debug目录中创建的。然后,您可以将这个目录放入lib路径,这样它就能工作了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29110985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档