最近要写一些OpenGL的测试Demo,下载Freeglut并配置好开发环境之后,在Debug模式下一直编译报错:无法打开文件“freeglutd.lib”
由于我下载的Freeglut(3.0版本)在编译之后生成的链接库Debug和Release的名称都是freeglut.lib,因此配置在Debug模式下的lib库是freeglut.lib。在看到这个报错之后,检查了所有工程的链接库配置,根本就找不到这个输入的lib,因此猜测可能是freeglut库在源码中添加了VS的链接库,应该是使用#pragma comment (lib, "xxx.lib")
这样的语法。翻看源码之后,果然发现下面的代码:
/* 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
解决方式:在Debug环境的工程配置中,添加宏定义NDEBUG
或者直接在main.cpp文件中添加一行
#define NDEBUG