跳至內容

OpenGL 程式設計/安裝/Linux

來自華夏公益教科書,開放的書籍,開放的世界

在 Linux 上安裝 OpenGL

[編輯 | 編輯原始碼]

大多數 Linux 發行版依賴於 Mesa3D 專案來提供他們的 OpenGL 實現。 這為常規 OpenGL 以及 OpenGL ES 1.x 和 2.0 提供庫。

您需要安裝的軟體包的準確名稱高度依賴於發行版。 參考您發行版的軟體包可以節省您在安裝中大量時間和麻煩。 使用您喜歡的軟體包管理器搜尋軟體包名稱。 您可能需要安裝帶有 dev 字尾的軟體包,這些是開發軟體包(通常是標頭檔案)。 還要尋找以 lib 為字首的軟體包,這些是指庫。

安裝 GCC C/C++ 編譯器和相關工具,如 make

總而言之,安裝 Mesa、Make 和 GCC/g++

sudo apt-get install build-essential libgl1-mesa-dev  # Debian, Ubuntu
sudo dnf install make gcc-c++  # Fedora

在這本華夏公益教科書中,我們將大量使用 GLEW、SDL2(+SDL2_Image)、GLM 和 FreeType。 確保您安裝了開發庫

sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev  # Debian, Ubuntu
sudo dnf install glew-devel SDL2-devel SDL2_image-devel glm-devel freetype-devel   # Fedora
sudo pacman -S glew sdl2 sdl2_image glm freetype2 # Arch

如果您的發行版儲存庫中沒有 GLM,您可以選擇手動安裝它。 確保標頭檔案以 /usr/include/glm 目錄結尾。 由於它只是一個頭檔案庫,因此您無需編譯 .so 庫 - 只需將程式碼複製到那裡即可。

驅動程式

[編輯 | 編輯原始碼]

OpenGL 是基於 GNU/Linux 的系統上的主要 3D 圖形 API。 如果您的裝置支援 GNU/Linux 上的 3D 加速,它可能包含 OpenGL 分發版。

OpenGL 包含在驅動程式中,因此如果您想享受使用 OpenGL 的程式,則必須確保驅動程式已正確安裝。 開源驅動程式實際上利用了 Mesa 的 OpenGL 實現。 專有驅動程式嵌入他們自己的 OpenGL 庫。

專有選項

[編輯 | 編輯原始碼]

Nvidia 透過他們網站上的 nvidia 驅動程式提供通常很棒但非開源的驅動程式。 fglrx 驅動了許多現代 AMD 裝置; 它也是閉源的,可從 AMD 網站獲得。

免費/開源選項

[編輯 | 編輯原始碼]

如果您的 CPU 是帶有內建圖形的英特爾 CPU,那麼所需的開源驅動程式將作為 Linux 核心的標準部分提供。

如果您擁有最新款晶片之一,您可能被迫使用平庸的 fglrx 驅動程式。 但是由於 AMD 釋出了其晶片的規範,開源 'radeon' 已經成為一個功能齊全的 2D 和 3D 驅動程式。

截至 2013 年 6 月,大多數 AMD 晶片可以與開源 'radeon' 驅動程式良好執行。 在現代顯示卡上,AMD Catalyst 驅動程式的 3D 效能仍然更好,但這可能會在將來發生變化。 檢查 功能矩陣 以瞭解完成狀態。

開源 nouveau 驅動程式支援 nVidia 晶片組,但在撰寫本文時,它並不像 nVidia 的閉源驅動程式那樣完整,3D 支援可能不盡如人意。

Linux 系統上的 OpenGL 驅動程式包含兩個檔案

  • libGL.so 用於 GL 本身; libGL.so 必須對 Linux 庫載入程式可訪問(請參閱 ldconfig 手冊頁);
  • glx.so(此名稱可能會有所不同)用於 Xorg 對 OpenGL 的支援; glx.so 將位於 Xorg 的擴充套件路徑中,並且必須由 xorg.conf 載入(請參閱 xorg.conf 手冊頁)。

許多 OpenGL 應用程式也需要 libGLU.so; GLU 操作不是硬體加速的,因此 Mesa 提供的實現是一個很好的選擇。

檢查您的 OpenGL 安裝

[編輯 | 編輯原始碼]

在終端中鍵入此命令以獲取有關您的 OpenGL 驅動程式的大量資訊,包括支援的擴充套件

glxinfo | grep OpenGL

教程主要依賴於簡單的 Makefile 來構建程式碼,並讓您使用您喜歡的文字編輯器(如 Emacs、vim、gedit、kwrite 等)來編輯原始碼。

GNU/Linux 上存在幾種 IDE,例如

  • Code::Blocks
  • Anjuta
  • KDevelop
  • Eclipse CDT(可以與 Make 介面)

將 Makefiles 適應這些環境非常簡單。


< OpenGL 程式設計/安裝

瀏覽並下載 完整程式碼
華夏公益教科書