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
因?yàn)镺penCASCADE是用C++寫的幾何造型算法庫,有良好的跨平臺(tái)性,所以決定在Linux上來編譯試試看。由OpenCASCADE的文檔可知,在Linux上OCC選擇了Debian作為常規(guī)測(cè)試的系統(tǒng),所以也安裝了一個(gè)Debian 64bit的系統(tǒng)。
Figure 1.1 Debian 64bit is a platform used for regular testing of contributions
DebianGNU/Linux是由一個(gè)叫IanMurdock的牛人在1993年發(fā)起的,他的名字以Ian開頭,他太太的名字Debra開頭三個(gè)字母是Deb,于是在愛情的力量下,他發(fā)起了DebianGNU/Linux組織。Debian的正式發(fā)音為/?d?.bi.?n/,對(duì)應(yīng)的中文發(fā)音可以是待賓。
使用了Debian后,感覺到開源的庫真是多啊!選擇Debian你將不會(huì)感到孤單,有相當(dāng)廣泛的機(jī)構(gòu)及個(gè)人都在使用Debian。Debian擁有驚人數(shù)量的軟件包,每一樣都是自由的。且安裝與更新都很方便,只需要使用命令:apt-get update和apt-get install 等就可以自動(dòng)更新及安裝軟件。
Figure 1.2 debian the universal operating system
安裝Debian系統(tǒng)的電腦是幾年前的一臺(tái)筆記本,配置有些老了。打開Debian的System Monitor可以查看Debian的系統(tǒng)信息,如下圖所示:
Figure 1.3 Debian System Info
2.Preliminary
安裝好了Debian,下載了OpenCASCADE的源碼后,要編譯OpenCASCADE還需要做些準(zhǔn)備工作:
v 配置C++編程環(huán)境:apt-get install build-essential
v 配置C++編譯環(huán)境:apt-get install automake autoconf
v 配置OpenGL庫:apt-get install freeglut3-dev
剛開始安裝AutoTools還遇到問題,最后查出是源的問題,把源改成Debian默認(rèn)的USA源后,即可以自動(dòng)安裝AutoTools了。原來用的163的鏡像上不能安裝AutoTools。
編譯OpenCASCADE需要用到OpenGL的庫,編譯之前的configure會(huì)檢查是否正確設(shè)置GL庫。如果沒有正確安裝OpenGL庫,有幾個(gè)模塊是不能正確編譯的。先要安裝好顯卡的驅(qū)動(dòng)程序,再安裝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的官方源中下載安裝,只需要執(zhí)行如下命令即可:
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
如果有些庫找不到,可以嘗試下?lián)Q個(gè)源。原來設(shè)置的163的源有些庫就找不到,更換成USA或其他國家的源就可以了,速度也還不錯(cuò)。
當(dāng)然這些庫也可以自己編譯,推薦自己編譯下,熟悉下Automake工具的使用。
4.Building OpenCASCADE with Automake
完成上述準(zhǔn)備工作后,就可以編譯OpenCASCADE了。編譯步驟如下所示:
v 運(yùn)行在OCCT目錄中的build_configure腳本來生成與系統(tǒng)相適應(yīng)的Makefile.in和configure;
v 運(yùn)行在OCCT目錄中的configure來生成makefiles;命令如下:
$CASROOT/configure<FLAGS>
其中<FLAGS>是一些編譯選項(xiàng),用來配置第三方庫與Draw等,配置參數(shù)如下所示:
Figure 4.1 Configure options for OpenCASCADE
示例configure命令如下:
Figure 4.2 configure example
Figure 4.3 configure successed status without optional 3rdparty products
如上圖所示,當(dāng)Component對(duì)應(yīng)的Build都為yes表明configure成功了。
v 如果configure成功后,即可使用make命令來編譯了,命令如下:
make -j8 install
v 編譯成功后,即可運(yùn)行draw.sh來測(cè)試OpenCASCADE了。
運(yùn)行《OpenCASCADE Performance Test》中的Tcl腳本得到的效果如下圖所示。模型及Tcl腳本都可以從下面獲得:
http://www.shnenglu.com/eryar/archive/2014/09/25/208421.html
由于筆記本的配置比較老了,運(yùn)行起來速度沒有新的機(jī)器快。同樣數(shù)量的F1賽車模型的網(wǎng)格化及顯示速度都要慢很多,而且?guī)l也明顯要慢很多。
終于在Debian中把OpenCASCADE編譯成功了,下一步就是使用OpenCASCADE在Debian中編程。
今天是國慶節(jié),呆在家中擺弄這些代碼也是比較愜意,免去了出去玩的People Mountain People Sea的擁擠。
Figure 4.4 Draw Test Hanress in Debian
Figure 4.5 Draw Test Harness in Debian
5. Conclusion
在Debian上成功編譯OpenCASCADE后,為程序的開發(fā)打開一扇自由之門,在更Open的環(huán)境中開發(fā)程序,就不再受什么限制了,這點(diǎn)感覺比用Windows要好。
OpenCASCADE在Debian上編譯主要使用了Autotools,所以需要正確安裝Autotools及熟悉其使用方法。這點(diǎn)上感覺沒有用習(xí)慣了的Visual Studio方便,新的工具只有慢慢適應(yīng)。
設(shè)置合適的Debian更新源也很重要,剛開始我根據(jù)網(wǎng)上所說的選擇了國內(nèi)的鏡像,導(dǎo)致一些工具不能自動(dòng)安裝,更換成USA的就可以了。