OpenGL包括兩個部分,OpenGL工具函數庫(GLU)和OpenGL實用工具庫(GLUT),幸運的的是Visual Studio在安裝的時候就安裝了GLU,所以我們只要安裝GLUT就好。
GLUT有很多版本,不過不同版本之間的差異不會很大,因爲GLUT編寫的目的是隱藏不同的窗口系統API所帶來的複雜性。這裏我們選用了官網提供的GLUT(點擊下載)版本。
下載下來是一個壓縮包,將這個壓縮包解壓到我們的開發目錄下,最好是一個專門用來安裝程序的盤,比如我就將壓縮包解壓到E盤,目錄結構是這樣的:
E:\OPENGL
└─glut
glut.dll
glut.h
glut.lib
glut32.dll
glut32.lib
接下來我們打開Visual Studio,建立一個控制檯項目。網上有很多教程直接把解壓出來的文件放到Visual Studio的安裝目錄下面,這樣雖然能夠正常使用,但是並不好。所以我們還是使用正常的方法來配置OpenGL,學了這一招以後所有的配置都可以按照這個方法來啦,比如OpenCV、darknet之類的庫。
我們先用這個方法配置好OpenGL,然後再講類似的庫如何配置。
首先切換到創建好的項目中,打開屬性管理窗口,主界面沒有的可以從窗口中找到。在屬性管理窗口中我們可以看到四個環境,分別是Debug x86、Release x86、Debug 64、Release 64,右鍵點擊我們正在使用的環境->屬性。
打開屬性之後點擊VC++目錄,我們可以看到包含目錄、庫目錄,依次點擊這兩個選項,將我們解壓GLUT的目錄添加進去。
再點擊調試->環境,將GLUT的解壓目錄添加進去,注意這裏的等號兩邊不能有空格,否則會配置失敗,提示找不到glut.dll文件。
然後點擊鏈接器->輸入->附加依賴項,將GLUT解壓目錄裏後綴爲 .lib
的文件名全部添加上去,最後點擊確定保存配置,運行下面的代碼檢查是否配置成功。
#include "pch.h"
#include<Windows.h>
#include<gl/glut.h>
void display() {
glClearColor(0.5, 0.5, 0.5, 0.5);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_POLYGON);
glVertex3f(0.25, 0.25, 0.0);
glVertex3f(0.75, 0.25, 0.0);
glVertex3f(0.75, 0.75, 0.0);
glVertex3f(0.25, 0.75, 0.0);
glEnd();
glFlush();
}
void init() {
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
int main(int argc, char *argv[]) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(100, 100);
glutInitWindowSize(800, 600);
glutCreateWindow("OpenGL-ONE");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
最後我們再來詳細講一下各個配置的含義:
- 包含目錄:這個是頭文件所在目錄,也就是後綴爲
.h
的文件所在的目錄,一般文件夾名字是 include之類。 - 庫目錄:這個是庫文件所在目錄,即後綴爲
.lib
的文件所在的目錄,一般存放庫文件的目錄名爲 lib之類。 - 環境:這個是windows動態庫文件所在的目錄,後綴名爲
.dll
,一般和庫文件放在一起 - 附加依賴項:附加依賴向指的就是所有的
在我們這個例子中上面發目錄都是同一個,這是因爲GLUT把所有的文件全部放在一個文件夾裏了,如果是OpenCV的話就會有include、lib之類的目錄。