配置OpenGL时遇到的一些问题
今天在配置openGL时遇到了一些问题,在各种"玩弄“后终于配置好了。(汗)
电脑为windows10(X64),原本是装好vs2015的,所以只需要下载一些头文件。OpenGL 下有一些重用的辅助库,比如glut,glew等等,在windows平台下需要自己安装,因为微软为了推广自己的DX,在windows下只支持openGL 1.1版本。
现在openGL已经发展到3.0了,因此我们需要自己下载配置这些库,在这里我们来安装glut, glee, glew这三个库,以及一些OpenGL扩展支持。
glut : 提供对窗口的封装,这是跨平台窗口的,我们就不必自己去编写烦琐的窗口代码。
glee : 方便用来判断当前系统是不是支持某项OpenGL特性,我们就不用自己去写烦琐的先取函数地址然后再判断的代码了。
glew : 因为windows默认只支持OpenGL 1.1,你要想用更高版本的OpenGL,你就需要安装它,它能自动识别你的平台所支持的全部OpenGL高级扩展函数。
首先给出官方的一个链接:https://www.opengl.org/wiki/Getting_Started
奈何官方只给出电脑配置显卡驱动的下载地址。那三个库还得自己丰衣足食。
1.glut
GLUT3.7下载地址:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
将glut.dll glut32.dll复制到C:\Windows\SysWOW64下。将glut32.lib和glut.lib复制到vs2015\VC\lib下。将glut.h复制到C:\Program Files (x86)\Windows Kits\8.1\Include\um\gl下。
写程序时只需要把
#include <GL/gl.h>
#include <GL/glu.h>
用
#include <GL/glut.h>
替换就可以了。因为在头文件 glut.h 中已经包含这些头文件,并导入了必要的库:
#pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */
#pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */
#pragma comment (lib, "glu32.lib") /* link with OpenGL Utility lib */
#pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */
2.glew
下载地址:https://sourceforge.net/projects/glew/?source=directory
如上,三种格式的文件还是拷贝到各自目录下。在程序中我们只需要在包含glut.h 之前包含 glew.h就可以了(注意:一定要先包含 glew.h)。
在代码中加上这么一句:
#pragma comment (lib, "glew32.lib")
示例:
#include <GL/glew.h>
#include <GL/glut.h>
#progrma comment(lib, "glew32.lib")
在创建OpenGL渲染context之后,调用 glewInit(); 初始化glew就可以了。
3.glext.h glxext.h glcorearb.h wglext.h
glext.h:https://www.opengl.org/registry/api/GL/glext.h
glxext.h:https://www.opengl.org/registry/api/GL/glxext.h
glcorearb.h:https://www.opengl.org/registry/api/GL/glcorearb.h
wglext.h:https://www.opengl.org/registry/api/GL/wglext.h
还是和上面一样,放到对应得目录下。
4.glaux
下载地址:http://download.csdn.net/detail/li235456789/8224459
当把glaux.h放到指定的文件夹时,运行报错说是,打不开glaux.h。可以在项目——>(projectname)属性——>配置属性——>链接器——>输入——>附加依赖项添加就好
但是在运行程序时,会出现以下错误:
“Draw.exe”(Win32): 已加载“C:\Users\YC\Documents\Visual Studio 2013\Projects\Draw\Debug\Draw.exe”。已加载符号。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\ntdll.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\kernel32.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\KernelBase.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\mfc120d.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\advapi32.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\msvcrt.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\sechost.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\rpcrt4.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\msvcr120d.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\user32.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\gdi32.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\lpk.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\usp10.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\ole32.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\oleaut32.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\shlwapi.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\imm32.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\msctf.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\uxtheme.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32):
已加载“C:\Windows\winsx\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18201_none_ec80f00e8593ece5\comctl32.dll”。
无法查找或打开 PDB 文件。
“Draw.exe”(Win32):
已加载“C:\Windows\winsxs
\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.18455_none_72d576ad8665e853
\GdiPlus.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\apphelp.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已卸载“C:\Windows\System32\apphelp.dll”
“Draw.exe”(Win32): 已加载“C:\Windows\System32\cryptbase.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\dwmapi.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Users\YC\AppData\Roaming\TaobaoProtect\TaobaoProtectSE.dll”。模块已生成,不包含符号。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\psapi.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\shell32.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\version.dll”。无法查找或打开 PDB 文件。
“Draw.exe”(Win32): 已加载“C:\Windows\System32\profapi.dll”。无法查找或打开 PDB 文件。
程序“[5036] Draw.exe”已退出,返回值为 0 (0x0)。
解决办法:调试——>选项——>调式常规——>勾选启动源服务器支持——>符号——>勾选Microsoft符号服务器
参考了,http://www.cnblogs.com/lzihua/archive/2012/05/11/2495714.html和http://blog.csdn.net/tahelin/article/details/30318341