通過本節,我們來學習一下在Win10 64、VS1013環境下搭建OpenGL的開發環境。
(1)選擇一個編譯環境:
現在在windows中OpenGL的主流編譯工具有Visual Studio,Broland C++ Builder,Dev C++等,我們選擇Visual Studio2013作為開發環境。
(2)用到的資源:
我們使用了GLEW,freeglut以及GLTools這三個庫。下面是它們的簡介:
1)GLEW:
The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform. OpenGL core and extension functionality is exposed in a single header file. GLEW has been tested on a variety of operating systems, including Windows, Linux, Mac OS X, FreeBSD, Irix, and Solaris.
GLEW是一個跨平台的OpenGL的擴展庫,支持多個操作系統。
2)freeglut:
FreeGLUT is a free-software/open-source alternative to the OpenGL Utility Toolkit (GLUT) library。(FreeGLUT是一個免費軟件/開源替代OpenGL實用工具包(GLUT)庫。)
3)GLTools:
主要是為了獲得這個項目編譯后的gltools.lib文件。
(3)開發環境的配置:
1)下載文件:
| 文件名 | 我的文件 | 官網下載 |
| 1.GLEW | http://files.cnblogs.com/files/MenAngel/glew-1.7.0-win64.zip | http://glew.sourceforge.net/ |
| 2.freeglut需編譯包(不用不行) | http://files.cnblogs.com/files/MenAngel/freeglut-3.0.0.tar.gz | http://freeglut.sourceforge.net/ |
| 3.GLTools需編譯包(不用也行) | http://files.cnblogs.com/files/MenAngel/GLTools-master.zip | https://codeload.github.com/HazimGazov/GLTools/zip/master |
| 4.freeglut(只有freeglut.lib和.dll) | http://files.cnblogs.com/files/MenAngel/freeglut_2.8.0.zip | http://download.csdn.net/detail/wocaowogannimei/8082851 |
| 5.GL和GLTools.lib包 | http://files.cnblogs.com/files/MenAngel/GL%E5%92%8Cgltools.dll.lib.7z |
自定義包:GL可直接用,而且還包含GLTools.lib |
2)解壓后將得到的文件分別進行配置:
處理glew:
include文件夾下是頭文件,將位於include文件夾下的GL文件夾復制到"Visual Studio 2013安裝目錄\VC\include" 下;
lib文件夾下的文件復制到"Visual Studio 2013安裝目錄\VC\lib";
bin文件夾下的文件復制到C:\Windows\SysWOW64;(32位的系統放在System32)
處理GLTools
對於GLTools,主要是獲得GLTools.lib文件, 然后將GLTools.lib復制到Visual Studio 12.0\VC\lib下。
我們可以通過編譯GLTools項目來獲得GLTools.lib,也可以直接用別人編譯項目獲得的GLTools:
1.下載地址:http://download.csdn.net/download/u010255642/6896993
2.編譯方法:
參見文檔:http://www.cnblogs.com/wangguchangqing/p/4425745.html
參見文檔:http://www.ithao123.cn/content-967031.html
拷貝的結果:

至此,OpenGL開發環境配置完成。
(4)一個OpenGL的測試項目:
1)在VS2013項目中新建一個Visual C++類型的win32控制台程序,空項目:

2)創建空項目之后,而且選擇不要預編譯頭部,在OpenGL測試項目上右擊打開屬性頁:

3).在鏈接器的輸入頁面的附加依賴項中添加gltools.lib,glew32s.lib,freeglut.lib;在忽略特定默認庫中添加LIBCMT和MSVCRT。


4)在源文件上選擇右擊,新建一個C++文件,命名為text1.c。(默認是.cpp文件)

5)拷貝下面的測試代碼到text1.c中:
1 //#include"stdafx.h" 錯誤原因:VS2013/2012默認就包含了“stdafx.h”吧,所以不必再寫一次。 2 #include <GL/glut.h> 3 void init(void) 4 { 5 glClearColor(0.0, 0.0, 0.0, 0.0);//設置背景顏色為黑色 6 glShadeModel(GL_SMOOTH);//設置為光滑明暗模式 7 } 8 void myDisplay(void) 9 { 10 glClear(GL_COLOR_BUFFER_BIT);// 將緩存清除為預先的設置值,即黑色 11 //glTranslatef(0.8, 0.0, 0.0);//平移函數,暫時可以不用 12 glBegin(GL_TRIANGLES);//開始畫三角形 13 glColor3f(1.0, 0.0, 0.0);//設置第一個頂點為紅色 14 glVertex2f(-1.0, -1.0);//設置第一個頂點的坐標 15 glColor3f(0.0, 1.0, 0.0);//設置第二個頂點為綠色 16 glVertex2f(0.0, -1.0);//設置第二個頂點的坐標 17 glColor3f(0.0, 0.0, 1.0);//設置第三個頂點為藍色 18 glVertex2f(-0.5, 1.0);//設置第三個頂點的坐標 19 glEnd();//三角形結束 20 glFlush();//強制OpenGL函數在有限時間內運行 21 } 22 void myReshape(GLsizei w, GLsizei h) 23 { 24 glViewport(0, 0, w, h);//設置視口 25 glMatrixMode(GL_PROJECTION);//指明當前矩陣為GL_PROJECTION 26 glLoadIdentity();//將當前矩陣置換為單位陣 27 if (w <= h) 28 gluOrtho2D(-1.0, 1.5, -1.5, 1.5*(GLfloat)h / (GLfloat)w);//定義二維正視投影矩陣 29 else 30 gluOrtho2D(-1.0, 1.5*(GLfloat)w / (GLfloat)h, -1.5, 1.5); 31 glMatrixMode(GL_MODELVIEW);//指明當前矩陣為GL_MODELVIEW 32 } 33 int main(int argc, char ** argv) 34 { 35 /*初始化*/ 36 glutInit(&argc, argv); 37 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//單緩沖、RGB模式 38 glutInitWindowSize(400, 400); 39 glutInitWindowPosition(200, 200); 40 glutCreateWindow("三角形");//窗口標題 41 init(); 42 /*繪制與顯示*/ 43 glutReshapeFunc(myReshape);//窗口大小發生改變時采取的行為 44 glutDisplayFunc(myDisplay);//顯示繪制圖形 45 glutMainLoop();//循環 46 return(0); 47 }
點擊本地windows調試器運行的結果為:

加上這句話會出現上圖所示錯誤:


錯誤原因:VS2013/2012默認就包含了“stdafx.h”吧,所以不必再寫一次。
