2009-12-10 68 views
0

我開始學習OpenGL和我不知道,如何將它安放(Ubuntu的)Linux操作系統。在Linux上設置OpenGL的gtkmm的和交叉編譯

我認爲這可能是一個辦法:

OpenGL是唯一一個圖形語言規範(或接口),並正確地使用它,我要下載一些庫(用於特定OS)是工具的OpenGL規範。

經過長期的搜索並從多個來源,我發現了梅薩的3D圖形庫將是最適合我。

我還發現了SDL(簡單直接層)庫,但它似乎是圖形身邊所有其他的事情庫(例如圖形用戶界面,音響,鍵盤和鼠標輸入,...)。我只需要一個圖形庫,以便它將實現OpenGL規範。

作爲一個圖形用戶界面,我使用Gtkmm庫,到目前爲止我對它「非常滿意」,所以我想「連接」gtkmm和OpenGL - 爲此,我找到了一個名爲gtkglextmm的gtkmm庫的擴展我應該能夠在GUI中將OpenGL動畫繪製到窗口(或Gtkmm術語中的DrawingArea),但我還沒有嘗試過,因此我希望它能起作用:-))。

而最後一個問題是從Linux到Windows中的交叉編譯(與MinGW的交叉編譯器)。到目前爲止,我已經成功地將所有使用Gtkmm庫的工作交叉編譯(從Linux到Windows)。 (當我用Gcc編譯器編譯時,是否需要特別鏈接一些特別的東西,還是我應該使用我的應用程序分發一些Windows OpenGL庫)?當我將它與OpenGL結合使用時,它不會是任何問題嗎? ?

我會很高興我給你證實,我在正確的方向或轉向我,我可以做的東西更容易或更好的方法了正確的方向。

回答

2

在一定程度上它的顯卡相關的,專有驅動包包含自己的libGL.so,並且還包含libGL.la(用於鏈接.so)和任何相關的頭文件。

  • 的Nvidia - OpenGL庫和標頭包括在所述專利的驅動程序包。
  • ATi FGLRX - OpenGL庫和頭文件包含在專有驅動程序包中。
  • 開源驅動 - 提供OpenGL庫和頭文件作爲Mesa的一部分。根據您的發行版,您可能需要安裝* -devel軟件包以獲取您需要的標題和可鏈接庫。

如果您使用的是Intel或Matrox卡,或者您正在運行帶有rage,radeon或radeonhd驅動程序的ATi卡,那麼您使用的是開源驅動程序。

GLUT將成爲工作程序的最短路徑。否則,你需要編寫代碼來自己創建OpenGL上下文(特定於操作系統)。

如果您仍然遇到問題,請告訴我們更多關於什麼不適合您的問題。

編輯下面是一些可能相關或有用的示例命令/代碼。

GCC編譯:

gcc -lGL glprogram.c -o glprogram 

包括:

#include <GL/gl.h> 
#include <GL/glu.h> 
#include <GL/glut.h> 
+0

一些疑問...... 做所有的閉源(NVDIA/ATI)和MES​​A headears及庫在安裝時常見的路徑走默認(我知道當然我可以改變這個至少mesa - 因爲它會被編譯..)? 是否可用的版本3.2的opengl取決於這個驅動程序的安裝(GL目錄和準備.so)? 如果是的話,那麼編譯上這些驅動程序的任何更高級別的工具包將被認爲支持OpenGL 3.2標準...我是否正確? 謝謝。 – ashishsony 2009-12-13 18:01:02

+0

我懷疑v3.2不支持mesa呢? – ashishsony 2009-12-13 18:15:09

+0

標題始終安裝到公共路徑。是的,Mesa仍然在努力開發OpenGL 3。x支持(圍繞S3 Texture Compression擴展存在一些問題,大多數開源驅動程序仍在開發所需的功能)。 – 2009-12-13 20:44:35

0

我在Linux領域沒有太多幫助。當涉及到OpenGL的時候,我就落後於時代。但是,它看起來像NeHe has a new set of tutorials,他們在一起放置了一些很好的基本代碼。

正如他們所說的網站上:

當寫入新的教程中,我們有 幾個目標:通過採用現代乾淨,簡單和一致的編碼標準

    • 寫C++
    • 仍然完全跨平臺(即OpenGL的力量畢竟)
    • 激發人們基於我們basecode
  • 所以我強烈建議至少讓他們的代碼嘗試提交自己的經驗教訓。 NeHe擁有一個創建一些非常好的教程的悠久傳統。

    1

    它應該只是在給出正確包裝的情況下工作。

    也就是說,這裏是Build-Depends的相關塊:用於在Debian上構建rgl包(其在OpenGL設備上爲R提供)。至於Ubuntu使用他們的包生成相同的設置,你應該下注設置:

    libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | libglu-dev, \ 
    libpng12-dev, libx11-dev, libxt-dev, x11proto-core-dev 
    

    |意味着替代,這樣你就可以使用基於檯面,包或那些符合您的顯卡(如各種nvidia- *軟件包)。

    只需從某處抓取一些OpenGPl示例並嘗試。

    0

    你要朝正確的方向發展。我使用的Eclipse CDT + SDL + OpenGL的下Ubuntu Linux操作系統的開發我的應用程序(我用這個教程的設置:http://www.ferdychristant.com/blog/articles/DOMM-72MPPE),然後成功編譯我的應用程序基於Windows操作系統的開發的C++