Ubuntu下編譯OpenMesh

    昨天花了一天時間,終於把OpenMesh在我的虛擬機上Ubuntu10.04上編譯成功了,其實整個過程還是很簡單的,不過Cmake出現的一個錯誤折騰了我很久,最後終於解決,所以想在這裏把整個過程記錄下來,以備他人蔘考:)


    首先介紹以下OpenMesh,這是一個開源的跨平臺Mesh數據結構的類庫,由RWTH開發。(別告訴我你不知道什麼叫Mesh),由於大量使用C++模板技術,使得OpenMesh具有很高的性能以及良好的擴展性,具體的介紹參見OpenMesh的主頁:http://www.openmesh.org/


    現在來說在Ubuntu下如何編譯OpenMesh:第一步,下載OpenMesh的源代碼,在主頁上Download標籤可以找到下載的地址,我下載的是最新的OpenMesh 2.0-RC5版本。(如果想要最新的開發版本,可以使用SVN下載,網頁上提供了SVN服務器的地址)下載後解壓到某個文件夾,比如/home/jixu/OpenMesh/OpenMesh-2.0-RC5/。


    第二步,其實OpenMesh本身並不依賴於其他的庫,可是要編譯他的例子程序就需要其他的幾個庫:QT,OpenGL,GLUT, GLEW。Ubuntu安裝這幾個庫非常簡單,只需要使用軟件包管理就很容易的安裝了。這幾個軟件包分別是:libgl1-mesa-dev , libglu1-mesa-dev , freeglut3-dev , qt4-dev-tools , libglew1.5-dev 。使用apt-get安裝即可。(這些庫對應的dbg我也安裝了,不知道以後有沒有用)。


    第三步,使用CMake安裝,首先要確保你的機器安裝了cmake。(如果沒有安裝,就apt-get install cmake )新建一個目錄(比如我的是usr/share/openmesh),進入這個目錄執行 cmake <openmesh解壓的目錄> (我的是cmake /home/jixu/OpenMesh/OpenMesh-2.0-RC5/)。這時cmake開始生成所需的makefile,可是一秒鐘之後屏幕顯示配置沒完成,我看了看error的信息,大概意思說在配置GLUT時找不到兩個關鍵的變量,於是我就看看是不是glut沒有安裝成功,可是寫了個opengl的測試程序證明glut是安裝了的,然後google了半天也沒啥效果,在cmake的maillist中找到了個.cmake文件(設置那兩個變量的)加到cmake子目錄下,錯誤依舊。。。由於不懂CMake的機制所以在那些.cmake文件中看來看去,(這裏省略兩千字),最後發現ms不是什麼GLUT的問題,是有另外兩個庫沒有安裝的原因,於是安裝libxi-dev ,libxmu-dev ,再執行cmake,成功!最後執行make編譯,過了3分鐘左右吧,新建目錄下的Build子目錄就是編譯好的庫了。趕緊運行了Build/bin下的QtViewer,可以顯示我的模型,很帥!


    最後說一下,如果要是自己寫程序調用OpenMesh的話,需要指定頭文件路徑和共享庫的路徑(我是使用共享庫的,靜態庫整個庫都在一起,很大不推薦),我爲了方便,將/Build/lib/OpenMesh目錄下的libOpenMeshCore.so.2.0和libOpenMeshCore.so拷貝到了/usr/local/lib目錄下(因爲gcc在鏈接時會自動找這個目錄),最後執行一下/sbin/ldconfig -v 更新一下。這時就可以自己編譯了,比如,進入OpenMesh源代碼的教程目錄(我的是/home/jixu/OpenMesh/OpenMesh-2.0-RC5/src/OpenMesh/Example/),然後進入Tutorial01子目錄,執行g++ -I../../../ cube.cc ,如果沒有錯誤會生成a.out,接着執行a.out ,生成了output.off,說明我們編譯成功了。


ps:由於第一次寫博客,估計會很混亂,不過我要堅持下去,並且爭取越寫越好,因爲今天看到了一句話很有道理:好記性不如爛博客:)

ps2: 文中橙色的部分是需要安裝的軟件包或者是需要執行的命令。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章