我正在尝试使用Visual 2013编译一个OpenGL程序,但我得到了以下错误:
错误1错误LNK1104:无法打开文件'freeglutd.lib‘.
作为参考,我已经安装了FreeGLUT,并将VS配置为搜索包含文件和库文件的正确目录。事实上,VS认识到过剩包含的文件都很好。我还在附加的依赖项中添加了opengl32.lib和freeglut.lib。
为什么VS要寻找“freeglutd.lib”?它肯定没有在附加的依赖项中列出。我可以通过将'libglut.lib‘重命名为'libglutd.lib’并从依赖项中删除前者来解决编译错误,但我只是好奇为什么会这样。
说到附加的依赖项,添加opengl32.lib实际上是必要的吗?我可以在没有它的情况下编译我的(非常基本的)程序,但是不止一个人说它是必需的,也许是针对旧版本的Visual吗?
发布于 2015-09-29 13:50:57
如果您检查freeglut_std.h (freeglutV3.0):
/* 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来解决这个问题。祝好运!
发布于 2015-03-17 22:42:48
可能已经回答了:freeglut error LNK1104
还有两件事需要检查:
发布于 2016-04-29 06:15:23
我通过在Debug模式下从生成的freeglut_static解决方案编译freeglut和CMake来解决这个问题- freeglutd是在lib/Debug目录中创建的。然后,您可以将这个目录放入lib路径,这样它就能工作了!
https://stackoverflow.com/questions/29110985
复制相似问题