前言
OpenGL 是一套由SGI公司發展出來的繪圖函式庫,它是一組 C 語言的函式,用於 2D 與 3D 圖形應用程式的開發上。 linux
OpenGL 讓程式開發人員不須要考慮到各類顯示卡底層運做是否相同的問題,硬體由 OpenGL 核心去溝通,所以只要顯示卡支援 OpenGL,那麼程式就不須要從新再移植,而程式開發人員也不須要從新學習一組函式庫來移植程式。 shell
接下來,咱們就一步一步的在Ubuntu底下創建開發OpenGL應用程式的環境。 工具
安裝
創建基本編譯環境
首先不可或缺的,就是編譯器與基本的函式庫,若是系統沒有安裝的話,請依照下面的方式安裝: oop
$ sudo apt-get install build-essential
安裝OpenGL Library
接下來要把咱們會用到的 Library 裝上去,首先安裝 OpenGL Library 學習
$sudo apt-get install libgl1-mesa-dev
安裝OpenGL Utilities
OpenGL Utilities 是一組建構於 OpenGL Library 之上的工具組,提供許多很方便的函式,使 OpenGL 更強大且更容易使用。接下來咱們安裝OpenGL Utilities 測試
$sudo apt-get install libglu1-mesa-dev
安裝OpenGL Utility Toolkit
OpenGL Utility Toolkit 是創建在 OpenGL Utilities 上面的工具箱,除了強化了 OpenGL Utilities 的不足以外,也增長了 OpenGL 對於視窗介面支援。 ui
$sudo apt-get install libglut-dev
注意在這一步的時候,可能會出現如下狀況,shell提示:正在讀取軟件包列表... 完成正在分析軟件包的依賴關係樹 正在讀取狀態信息... 完成 E: 未發現軟件包 libglut-dev若是出現上述狀況,請輸入將上述$sudo apt-get install libglut-dev命令改爲$sudo apt-get install freeglut3-dev就行拉,
設定編譯參數與編譯
在這以前,咱們須要一個測試範例,example.c 以下: 圖片
#include <GL/glut.h> 開發
void init(); get
void display();
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(0, 0);
glutInitWindowSize(300, 300);
glutCreateWindow("OpenGL 3D View");
init(); glutDisplayFunc(display);
glutMainLoop();
return 0;
}
void init()
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glOrtho(-5, 5, -5, 5, 5, 15);
glMatrixMode(GL_MODELVIEW);
gluLookAt(0, 0, 10, 0, 0, 0, 0, 1, 0);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0, 0);
glutWireTeapot(3);
glFlush();
}
有了測試範例、基礎編譯環境與各個 OpenGL 相關的函式庫以後,咱們所須要作的就是告訴編譯器咱們有安裝 OpenGL 函式庫,編譯程式時要連結這些函式庫。
$gcc example.c -c -lGL -lGLU -lglut
由於咱們安裝了 OpenGL Utility Toolkit ,它是創建在 OpenGL Utilities 與 OpenGL Library 之上,所以咱們能夠簡單連結 OpenGL Utility Toolkit 的函式庫就能夠達到咱們的目地了。下面的編譯參數跟上面的是一樣效果:
$gcc example.c -c -lglut
下面簡單說明一下所使用的 gcc 參數
-l<Library> 告訴 gcc 去連結指定 Library -o<file> 指定執行檔的輸出名字
執行
接下來咱們就能夠來看看咱們的結果,若是看到茶壺圖片,表明成功了!
$./example.out