轉載請注明出處!
GLEW庫安裝和初始化
GLEW庫是OpenGL的擴充庫,用于支援OpenGL1.1以上的版本[0]。比如着色器特性。一般非內建顯示卡都能支援到OpenGL2.0或者更高,但是沒有GLEW庫依然無法調用高版本OpenGL的函數。GLEW能自動識别你的平台所支援的全部OpenGL進階擴充涵數。也就是說,隻要包含一個glew.h頭檔案,你就能使用gl, glu, glext, wgl, glx的全部函數[0]。
建議自己下源碼然後編譯,不要用他提供的連結庫啥的。各種問題。
http://glew.sourceforge.net/裡有GLEW庫的源碼和連結庫下載下傳。
https://sourceforge.net/projects/glew/files/glew/1.12.0/glew-1.12.0.zip/download可以直接下載下傳到源碼。
https://sourceforge.net/projects/glew/files/glew/1.12.0/glew-1.12.0-win32.zip/download可以下載下傳到編譯好的連結庫(不推薦!)。
編譯GLEW庫
下載下傳好源碼,找到..\glew-1.12.0\build\vc12下的.sln檔案,用VS2012打開它。
注:有網友[1]建議打開..\glew-1.12.0\build\vc6下的.dsw檔案,并聲稱打開vc12後編譯出錯。我沒有發現這個問題,是以我是用vc12下的項目編譯的。
選擇Release,編譯(由于編譯好的連結庫提供了Release MX版本,是以我還同時編譯了Release MX,不知道有沒有用)。
編譯中可能的錯誤:
1[2],項目檔案包含ToolsVersion="12.0"。此工具集可能未知或缺失(您可以通過安裝相應版本的 MSBuild 來解決該問題),或者該生成因政策原因已被強制更改為特殊 ToolsVersion。将此項目視作具有 ToolsVersion="4.0"。
解決辦法:項目屬性à配置屬性à正常à平台工作集à把V120改成V100à應用。
然後出現編譯成功字樣就可以了(需要四個項目全部編譯成功!)。
安裝GLEW庫
按下表将各檔案移動:
檔案名 | 原位址 | 目标位址 |
glew32.dll | 源碼路徑\bin\Release\Win32 | C:\Windows\System32 C:\Windows\SysWOW64 |
glew.h glxew.h wglew.h | 源碼路徑\include\GL | C:\Program Files (x86)\Windows Kits\8.0\Include\um\gl |
glew32.lib glew32s.lib | 源碼路徑\lib\Release\Win32 | C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib |
注意,如果C:\Windows\System32和C:\Windows\SysWOW64下的dll版本不一緻,會出現無法定位程式輸入點[email protected]于動态連結庫XXXXXXX的問題,這時候把他們ctrl+C, ctrl+V一下就可以了。詳情參閱[5]
如果同時編譯了ReleaseMX下的項目,目标路徑同上。
建立工程注意事項
1,要先包含#include<GL/glew.h>再包含#include <GL/glut.h>,否則會報錯:
fatal error C1189: #error : gl.h included before glew.h
2,記得初始化glew:
glewInit();
而且!glew的初始化要放在glut的初始化和視窗建立後面!否則初始化失敗哦![6]
3,可能報錯:
error LNK2019: 無法解析的外部符号[email protected],該符号在函數 _main 中被引用
fatal error LNK1120: 2 個無法解析的外部指令
解決辦法:
在程式第一行加上:
#pragma comment(lib,"glew32.lib")
如果不行請參閱[3]或者[4]。
參考:
[0]http://www.cnblogs.com/madfrog/archive/2010/06/25/1765259.html
[1] http://www.cnblogs.com/U-tansuo/p/glew.html
[2] http://zhidao.baidu.com/link?url=Xovk5B9Kh-tmNnMDBYCvC2SKfypI6OoSyNSfYlkABROnlpr0DoaDf0DumTBvesGp3UKV5K9fk72489VdT2vH39yAfJJazC1YVUGwoweq4h7
[3] http://www.cnblogs.com/Vis-Shin/archive/2012/09/23/2699330.html
[4] http://blog.csdn.net/vanlin5566/article/details/42384387
[5] http://blog.csdn.net/t_w_s/article/details/9404271
[6] http://zhidao.baidu.com/link?url=xgvl4m4ZcAp38Mau3oPEtEkuUwz2BS_QM0achyPSyZVatK4xvkRRI8mn20i1OqakQtHaZQvqcNwi1z8iJDbeXrb9AQbMU2b5UdDkintQ3ua