Building OpenCASCADE on Debian
eryar@163.com
Abstract. When you are familiar with OpenCASCADE on Windows, you should try it on Linux operating system, because of Debian is also open source like OpenCASCADE. The paper is focus on how to building the OpenCASCADE on Debian.
Key Words. OpenCASCADE, Linux, Debian, Building
1. Introduction
因為OpenCASCADE是用C++寫的幾何造型算法庫,有良好的跨平臺性,所以決定在Linux上來編譯試試看。由OpenCASCADE的文檔可知,在Linux上OCC選擇了Debian作為常規測試的系統,所以也安裝了一個Debian 64bit的系統。
Figure 1.1 Debian 64bit is a platform used for regular testing of contributions
DebianGNU/Linux是由一個叫IanMurdock的牛人在1993年發起的,他的名字以Ian開頭,他太太的名字Debra開頭三個字母是Deb,于是在愛情的力量下,他發起了DebianGNU/Linux組織。Debian的正式發音為/?d?.bi.?n/,對應的中文發音可以是待賓。
使用了Debian后,感覺到開源的庫真是多啊!選擇Debian你將不會感到孤單,有相當廣泛的機構及個人都在使用Debian。Debian擁有驚人數量的軟件包,每一樣都是自由的。且安裝與更新都很方便,只需要使用命令:apt-get update和apt-get install 等就可以自動更新及安裝軟件。
Figure 1.2 debian the universal operating system
安裝Debian系統的電腦是幾年前的一臺筆記本,配置有些老了。打開Debian的System Monitor可以查看Debian的系統信息,如下圖所示:
Figure 1.3 Debian System Info
2.Preliminary
安裝好了Debian,下載了OpenCASCADE的源碼后,要編譯OpenCASCADE還需要做些準備工作:
v 配置C++編程環境:apt-get install build-essential
v 配置C++編譯環境:apt-get install automake autoconf
v 配置OpenGL庫:apt-get install freeglut3-dev
剛開始安裝AutoTools還遇到問題,最后查出是源的問題,把源改成Debian默認的USA源后,即可以自動安裝AutoTools了。原來用的163的鏡像上不能安裝AutoTools。
編譯OpenCASCADE需要用到OpenGL的庫,編譯之前的configure會檢查是否正確設置GL庫。如果沒有正確安裝OpenGL庫,有幾個模塊是不能正確編譯的。先要安裝好顯卡的驅動程序,再安裝freeglut庫即可解決問題。
3.Building 3rd-party libraries
OpenCASCADE的第三方庫分成兩類:
v 必須的庫:Tcl/Tk 8.5-8.6, FreeType-2.4.10-2.4.11;
v 可選的庫:TBB 3.x-4.x, gl2ps 1.3.5-1.3.8, FreeImage 3.14.1-3.15.4;
所有這些第三方庫都可以從Debian的官方源中下載安裝,只需要執行如下命令即可:
sudo apt-get install \
tcllib tklib tcl-dev tk-dev \
libfreetype-dev \
libxt-dev libxmu-dev \
libgl1-mesa-dev \
libfreeimage-dev \
libtbb-dev \
libgl2ps-dev
如果有些庫找不到,可以嘗試下換個源。原來設置的163的源有些庫就找不到,更換成USA或其他國家的源就可以了,速度也還不錯。
當然這些庫也可以自己編譯,推薦自己編譯下,熟悉下Automake工具的使用。
4.Building OpenCASCADE with Automake
完成上述準備工作后,就可以編譯OpenCASCADE了。編譯步驟如下所示:
v 運行在OCCT目錄中的build_configure腳本來生成與系統相適應的Makefile.in和configure;
v 運行在OCCT目錄中的configure來生成makefiles;命令如下:
$CASROOT/configure<FLAGS>
其中<FLAGS>是一些編譯選項,用來配置第三方庫與Draw等,配置參數如下所示:
Figure 4.1 Configure options for OpenCASCADE
示例configure命令如下:
Figure 4.2 configure example
Figure 4.3 configure successed status without optional 3rdparty products
如上圖所示,當Component對應的Build都為yes表明configure成功了。
v 如果configure成功后,即可使用make命令來編譯了,命令如下:
make -j8 install
v 編譯成功后,即可運行draw.sh來測試OpenCASCADE了。
運行《OpenCASCADE Performance Test》中的Tcl腳本得到的效果如下圖所示。模型及Tcl腳本都可以從下面獲得:
http://www.shnenglu.com/eryar/archive/2014/09/25/208421.html
由于筆記本的配置比較老了,運行起來速度沒有新的機器快。同樣數量的F1賽車模型的網格化及顯示速度都要慢很多,而且幀頻也明顯要慢很多。
終于在Debian中把OpenCASCADE編譯成功了,下一步就是使用OpenCASCADE在Debian中編程。
今天是國慶節,呆在家中擺弄這些代碼也是比較愜意,免去了出去玩的People Mountain People Sea的擁擠。
Figure 4.4 Draw Test Hanress in Debian
Figure 4.5 Draw Test Harness in Debian
5. Conclusion
在Debian上成功編譯OpenCASCADE后,為程序的開發打開一扇自由之門,在更Open的環境中開發程序,就不再受什么限制了,這點感覺比用Windows要好。
OpenCASCADE在Debian上編譯主要使用了Autotools,所以需要正確安裝Autotools及熟悉其使用方法。這點上感覺沒有用習慣了的Visual Studio方便,新的工具只有慢慢適應。
設置合適的Debian更新源也很重要,剛開始我根據網上所說的選擇了國內的鏡像,導致一些工具不能自動安裝,更換成USA的就可以了。