som*_*guy 7 freeglut visual-studio
我正在尝试使用Visual Studio 2013编译OpenGL程序,但是我收到以下错误:
错误1错误LNK1104:无法打开文件'freeglutd.lib'...
作为参考,我安装了FreeGLUT并配置了VS来搜索包含文件和库文件的正确目录.实际上,VS认识到GLUT包含文件就好了.我还将opengl32.lib和freeglut.lib添加到Additional Dependencies.
VS为什么要寻找'freeglutd.lib'?它绝对没有在附加依赖项中列出.我可以通过将'libglut.lib'重命名为'libglutd.lib'并从依赖项中删除前者来解决编译错误,但我只是好奇为什么它会以这种方式运行.
说到附加依赖,是否真的需要添加opengl32.lib?我可以在没有它的情况下编译我的(非常基本的)程序,但不止一个人说它是必需的,也许对于旧版本的Visual Studio?
小智 7
如果你检查freeglut_std.h(freeglut V3.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
Run Code Online (Sandbox Code Playgroud)
因此,如果您没有定义NDEBUG,链接器将链接到"freeglutd.lib",您可以通过在"PreprocessorDefinitions"中定义NDEBUG来解决这个问题.祝好运!