<a href="mailto:[email protected]">[email protected]</a>
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了。
<a href="http://www.cppblog.com/eryar/archive/2014/09/25/208421.html">http://www.cppblog.com/eryar/archive/2014/09/25/208421.html</a>
由于筆記本的配置比較老了,運作起來速度沒有新的機器快。同樣數量的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的就可以了。