2011-04-14 wcdj
在做个OpenGL的程序时,Debug版本下编译成功,但是切换到Release版本编译出现如下错误: 1>------ 已启动生成: 项目: OpenGLWin32GUI, 配置: Release Win32 ------ 1>正在编译... 1>OpenGLWin32GUI.cpp 1>正在链接... 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__glViewport@16 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__glMatrixMode@4 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__glLoadIdentity@0 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 _gluPerspective@32 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__glShadeModel@4 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__glClearColor@16 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__glClearDepth@8 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__glEnable@4 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__glDepthFunc@4 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__glHint@8 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__glClear@4 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__glTranslatef@12 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__glRotatef@16 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__glBegin@4 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__glColor3f@12 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__glVertex3f@12 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__glEnd@0 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__wglMakeCurrent@8 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__wglDeleteContext@4 1>OpenGLWin32GUI.obj : error LNK2001: 无法解析的外部符号 __imp__wglCreateContext@4 1>E:/Do/OpenGLWin32GUI/Release/OpenGLWin32GUI.exe : fatal error LNK1120: 20 个无法解析的外部命令 1>生成日志保存在“file://e:/Do/OpenGLWin32GUI/OpenGLWin32GUI/Release/BuildLog.htm” 1>OpenGLWin32GUI - 21 个错误,0 个警告 ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ========== 问题原因是 : Debug版本和Release版本是相互独立的,原先只在Debug版本中添加了附加的lib文件:OpenGL32.lib GLu32.lib ,而在Release版本下也同样需要添加。 方法相同:属性页->配置属性->链接器->输入->附加依赖项 添加 OpenGL32.lib GLu32.lib 在Release版本中添加附加的lib文件后,重新编译,成功!