2021-05-12 14:32:11
Fedora和Ubuntu下安裝OpenGL開發環境設定
Fedora下OpenGl開發環境設定
開發OpenGL工程需要3個庫檔案和對應的標頭檔案:
libglut.so,libGLU.so,libGL.so, gl.h ,glu.h, glut.h
這些庫在linux系統中預設都有,使用locate命令驗證都在標準庫目錄(/usr/lib)下:
[root@localhost GL]# locate libglut.so
/usr/lib/libglut.so.3
/usr/lib/libglut.so.3.9.0
[root@localhost GL]# locate libGLU.so
/usr/lib/libGLU.so
/usr/lib/libGLU.so.1
/usr/lib/libGLU.so.1.3.070700
[root@localhost GL]# locate libGL.so
/usr/lib/libGL.so
/usr/lib/libGL.so.1
/usr/lib/libGL.so.1.2
但是標頭檔案是沒有的,安裝開發包之前使用locate驗證無法找到相關檔案。
安裝開發包(需要3個開發包):
yum install mesa-libGL-devel mesa-libGLU-devel //這兩個是opengl核心庫
yum install freeglut-devel //OpenGL Utility ToolKit
安裝完之後用rpm命令驗證安裝包和查詢安裝的檔案以及安裝在什麼位置(以glut-devel為例):
[root@localhost etc]# rpm -qa | grep glut
freeglut-devel-2.6.0-1.fc12.i686
[root@localhost etc]# rpm -ql freeglut-devel
/usr/include/GL/freeglut.h
/usr/include/GL/freeglut_ext.h
/usr/include/GL/freeglut_std.h
/usr/include/GL/glut.h
/usr/lib/libglut.so
由上可見安裝freeglut之後在/usr/include/GL/目錄下新增了glut.h,在/usr/lib/下替換了libglut.so檔案。
可以在/usr/include/GL下使用ls驗證一下安裝的標頭檔案:
[root@localhost GL]# ls
freeglut_ext.h freeglut_std.h gl.h glu.h glut.h glx.h glx_mangle.h glxproto.h internal
freeglut.h glext.h gl_mangle.h glu_mangle.h glxext.h glxint.h glxmd.h glxtokens.h
好了,相關庫和標頭檔案都一切就緒,我們可以來寫一個最簡單的例子程式:
#include <GL/glut.h>
void display(){
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POLYGON);
glVertex2f(-0.5,-0.5);
glVertex2f(-0.5,0.5);
glVertex2f(0.5,0.5);
glVertex2f(0.5,-0.5);
glEnd();
glFlush();
}
int main(int argc,char *argv[]){
glutInit(&argc,argv);
glutCreateWindow("Simple");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
使用如下命令編譯:
gcc simple.c -o app -lglut -lGL -lGLU -lm -lX11 -lm
執行./app出現一個畫了白色矩形的視窗:
===
Ubuntu下安裝OpenGL設定
OpenGL 是一套由SGI公司發展出來的繪圖函式庫,它是一組 C 語言的函式,用於 2D 與 3D 圖形應用程式的開發上。OpenGL 讓程式開發人員不需要考慮到各種顯示卡底層運作是否相同的問題,硬體由 OpenGL 核心去溝通,因此只要顯示卡支援 OpenGL,那麼程式就不需要重新再移植,而程式開發人員也不需要重新學習一組函式庫來移植程式。
安裝
首先不可或缺的就是編譯器與基本的函式庫,如果系統沒有安裝的話,依照下面的方式安裝:
$ sudo apt-get install build-essential
安裝OpenGL Library
$ sudo apt-get install libgl1-mesa-dev
安裝OpenGL Utilities
$ sudo apt-get install libglu1-mesa-dev
OpenGL Utilities 是一組建構於 OpenGL Library 之上的工具組,提供許多很方便的函式,使 OpenGL 更強大且更容易使用。
安裝OpenGL Utility Toolkit
$ sudo apt-get install libglut-dev
OpenGL Utility Toolkit 是建立在 OpenGL Utilities 上面的工具箱,除了強化了 OpenGL Utilities 的不足之外,也增加了 OpenGL 對於視窗介面支援。
注意:在這一步的時候,可能會出現以下情況,shell提示:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libglut-dev
將上述$ sudo apt-get install libglut-dev命令改成$ sudo apt-get install freeglut3-dev即可。
測試
範例test.c原始碼:
#include <GL/glut.h>
void init(void)
{
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);
return;
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0, 0);
glutWireTeapot(3);
glFlush();
return;
}
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;
}
編譯程式時,執行以下指令:
$ gcc -o test test.c -lGL -lGLU -lglut
執行:
$ ./test
設定IDE,用cmake作為構建工具
其實opengl的程式的cmake寫法很簡單,因為在linux下,標頭檔案已經自動放到系統include路徑了,因此只需要在連結的時候加入連結庫,和前面用gcc/g++編譯的設定幾乎一致,無非是把引數寫在CMakeLists.txt中。比如用clion作為IDE,那麼對應的CMakeLists.txt為:
cmake_minimum_required(VERSION 3.3)
project(hello)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_executable(hello ${SOURCE_FILES})
target_link_libraries(${PROJECT_NAME} GL GLU glut) #此行為新增
當然,如果你覺得寫makefile很容易,那也可以去寫的,關鍵點還是連結庫要加入 GL GLU glut三個。
關於cmake的用法,可以參考 CMake快速使用教學 。如果進一步想看看pkg-config是怎麼玩的,可以參考 pkg-config的使用方法,即在/usr/lib64/pkgconfig
路徑下檢視對應的pc檔案。
glew.h標頭檔案
目前還沒有用到glew.h標頭檔案,前面fedora的安裝中也沒有相關的安裝。安裝方法:
sudo dnf install glew-devel
#會安裝glew-devel 和 libGLEWmx兩個rpm包
如果是ubuntu,看起來應該這樣安裝:
sudo apt-get install libglew-dev
《OpenGL程式設計指南(原書第8版)》——計算著色器 http://www.linuxidc.com/Linux/2015-08/122232.htm
OpenGL程式設計指南(原書第8版) 中英文PDF 高清晰版 http://www.linuxidc.com/Linux/2015-08/122230.htm
OpenGL程式設計指南(原書第7版)中文掃描版PDF 下載見 http://www.linuxidc.com/Linux/2012-08/67925.htm
OpenGL超級寶典 第4版 中文版PDF+英文版+原始碼 見 http://www.linuxidc.com/Linux/2013-10/91413.htm
OpenGL 渲染篇 http://www.linuxidc.com/Linux/2011-10/45756.htm
Ubuntu 13.04 安裝 OpenGL http://www.linuxidc.com/Linux/2013-05/84815.htm
OpenGL三維球體資料生成與繪製【附原始碼】 http://www.linuxidc.com/Linux/2013-04/83235.htm
Ubuntu下OpenGL程式設計基礎解析 http://www.linuxidc.com/Linux/2013-03/81675.htm
如何在Ubuntu使用eclipse for c++設定OpenGL http://www.linuxidc.com/Linux/2012-11/74191.htm
更多《OpenGL超級寶典學習筆記》相關知識 見 http://www.linuxidc.com/search.aspx?where=nkey&keyword=34581
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-10/124449.htm
相關文章