ubuntu 安裝openGL

來源:互聯網
上載者:User

OpenGL 是一套由SGI公司發展出來的繪圖函式庫,它是一組 C 語言的函式,用於 2D 與 3D 圖形應用程式的開發上。

OpenGL 讓程式開發人員不需要考慮到各種顯示卡底層運作是否相同的問題,硬體由 OpenGL 核心去溝通,因此只要顯示卡支援 OpenGL,那麼程式就不需要重新再移植,而程式開發人員也不需要重新學習一組函式庫來移植程式。

接下來,我們就一步一步的在Ubuntu底下建立開發OpenGL應用程式的環境。

安裝
建立基本編譯環境
首先不可或缺的,就是編譯器與基本的函式庫,如果系統沒有安裝的話,請依照下面的方式安裝:


$ 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 對於視窗介面支援。


$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();


   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
完畢。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.