1. 程式人生 > >vtk的簡單介紹和安裝

vtk的簡單介紹和安裝

自己用vtk有兩三年了,不精不專,但多少有些收穫,一時興起,寫一些 vtk安裝的文字。我選用的version是最新的穩定版本5.0,其實所有的內容都可以從vtk官方網站http://vtk.org上獲得。一、簡要介紹
VTK(Visualization Toolkit)
是一款用於二次開發的視覺化工具包,在世界上同類產品中最有影響,基本上可以作為視覺化領域的規範。
VTK
的歷史和現狀:
1993
12月,GEWill Schroeder, Ken Martin兩個人寫了一本書: The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics
VTK作為這本書的配套軟體贈送。由於VTK的出色表現,人們對軟體的關注程度遠遠超過了書,沒有幾年時間VTK就擁有了巨大的使用者群。VTK現在是由kitware公司維護,以開源的形式開發,全世界所有的人都可以加入到開發者的行列。現在VTK的穩定版本是5.0nightly 版本每天都會有更新。
VTK
的特點:Open Source。採用CVS版本控制跨平臺。支援WindowsUnixLinuxMac等多種平臺功能強大。適合幾乎所有的視覺化領域,從醫學視覺化到資料視覺化,都能找到VTK的使用者支援多種語言開發。c語言當然不用說了,還包括指令碼語言,如TCLPython,也支援Java具有強大的開發團隊。包括多家開發單位,具有商業化的維護,具有來自全世界使用者的智力資源
:)
二、安裝前的準備因為VTK是開源的,我們能從官方網站上得到它的原始碼,又因為它是跨平臺的,我們就要對原始碼進行一些包裝,才能被gcc vc6.0等不同編譯器所接受。VTK使用的跨平臺工具是CMake,它也是kitware公司的產品,可以從官方主頁上獲取。很多人不清楚cmake到底是幹什麼的,我這裡想解釋解釋。我們下載的vtk原始碼都是用c++編寫的,是一個大的工程,無論在什麼平臺,用什麼編譯器,你都要告訴編譯器該如何去編譯這麼一個龐然大物。工程檔案是工程的一般組織形式,比如vc6.0下面是dsw檔案,gcc下可以把makefile看成這麼一個東西。這些工程體系告訴編譯器該幹什麼,需要什麼樣的引數等,好,
cmake就是這樣一個用來生成適合不同編譯器所需要的工程檔案的工具。 cmake為什麼知道那些編譯引數呢,這不得不提CMakeList.txt這個檔案,正是這個檔案,提供了這些資訊,換句話說,如果沒有CMakeList.txt,我們就不能使用cmake。有人又會問,如果不用cmake,可以編譯vtk嗎?那當然可以,比如在vc中,可以建立一個新的工程,把檔案一個個往裡面新增,編譯選項也要自己加,在linux下,就自己寫makefile,當然,這個方法幾乎是無法實現的,就算實現,在今後的開發過程中還會遇到很多麻煩。所以,還是乖乖用cmake吧!安裝前,需要獲得下面的檔案,我這裡以vtk5.0為例,在winxp+vc6.0linux+gcc下實現
linxu
預安裝gcc3.0
vtk-5.0.0.tar.gz     vtk
的原始碼
vtkdata-5.0.0.tar.gz   vtk
例子所需要的資料
cmake-2.4.3-Linux-i386.tar.gz   cmake
程式,現在從官網上下載,是免編譯的

windows
預安裝vc6.0
vtk-5.0.0.zip    vtk
的原始碼
vtkdata-5.0.0.zip  vtk
例子所需要的資料
CMSetup243-win32.exe   cmake
安裝程式上面不同系統下,vtk原始碼以及data其實是一樣的,只不過使用了不同打包工具。另外,cmake版本的選擇是根據vtk版本來定的,比如vtk5.0所需要的最低cmake版本好像是2.0,這裡我們索性用更新的2.4三、windows下的vtk安裝
1
、安裝cmake
這個應該很簡單吧,windows下安裝軟體是傻瓜化的,執行CMSetup243-win32.exe,不停地點選下一步就行了
2
、解壓兩個壓縮包,建立所需資料夾我不喜歡直接在原始碼裡編譯,而是另外建立一個bin資料夾。比如我把c:/vtk/作為我們的主目錄,將vtk原始碼解壓在vtk5.0這個資料夾中,把data解壓在vtkdata這個資料夾中,再建立一個空的資料夾取名為bin。注意,./vtk5.0下面,應該就是一大堆資料夾和檔案,./vtkdata下面應該也可以發現幾個子資料夾。

3
、執行cmake
首先,將原始碼和編譯工作目錄兩個目錄添好,在這個例子中,sourse code目錄是c:/vtk/vtk5.0/build 目錄是c:/vtk/bin/再按configure按鈕,cmake軟體會讓你選擇需要使用的編譯器,這裡我們選vc6.0,然後,cmake就會對系統進行掃描了,停下來之後,我們就可以修改cmake選項了。修改cmake選項。這個環節還真不好說,一般vtk的初學者只需要用預設設定就行了。我只提醒一些比較重要的選項:
build_examples:
就是詢問是否編譯vtk中的例子,如選則on,就要花時間把vtk的例子編譯一遍,我一般不選
build_testing: test code
就是vtk開發者用來測試 vtk程式碼的一些測試程式碼,我們常常把它們當成學習vtk的例子,與build_examples類似,是否編譯他們,看個人喜好。

build_shared_libs:
如果設定為off,就只會生成lib檔案,用於開發肯定是夠了。如果設定為on,將會多生成dll檔案。他們的區別不是我這裡說得清楚的,反正如果用靜態庫程式設計,應用程式可以獨立執行,尺寸也比較大,如果用動態庫程式設計,應用程式必須找到動態庫才能執行,但尺寸可以做得比較小

cmake_install_prefix:
這個比較重要,就是以後要安裝vtk的路徑。有些人又要問,我編譯完了不就可以用vtk了嗎,為什麼還要安裝?對,不安裝其實可以,安裝的好處就是可以從 1G多的檔案中提取出.h .lib .dll等精華,安裝在指定目錄下,並修改系統環境變數

vtk_data_root:
一般地,cmake可以自己找到vtkdata的路徑,但如果沒有,把c:/vtk/vtkdata/填上即可,告訴cmakevtk需要的資料都在哪裡

vtk_use_parallel:
對於想用vtk做平行計算的朋友,要把這個選上,對於只想學學vtk的,保持預設off

vtk_use_guisupport:
很多人把vtk安裝好了,卻無法執行vtk中與mfc混合程式設計的例子,提示錯誤都是缺少vtkmfc.lib,問題就出在這個選項,我們必須把它設定為 on,再次configure之後,會出現一個新的選項vtk_use_mfc,把它也設定為on就行了。提示:在cmake中,有些選項是依賴於另一些選項的,比如vtk_use_guisupportvtk_use_mfc,當我們禁用vtk_use_guisupportvtk_use_mfc是看不到的。修改完cmake選項以後,不停的按configure按鈕,直到沒有選項顯示為紅色,而且此時,ok按鈕可用,點選ok按鈕,就可以生成vc的工程檔案了。

4
、用vc6.0編譯vc6.0開啟bin目錄下的vtk.dsw檔案,因為檔案很多,開啟速度會有些慢。開啟後,直接build。編譯的用時和計算機效能,以及cmake中的一些選項有關,一般1個小時內可以完成。結果儲存在./bin/bin目錄下。編譯也會出現不成功的時候,就要看編譯器提示的錯誤型別來處理了!

5
、安裝vc6.0開啟bin目錄下的install.dsp檔案,不用理會提示的錯誤,直接build。編譯結果就會安裝在cmake_install_prefix設定的目錄下。這個時候,把c:/vtk目錄刪除都行。當然,建議保留,也許以後還要更改cmake選項,再次修復編譯呢。cmake會檢查到改動,只處理改動過的地方,沒有改動過的就不要重新編譯了。四、在linux下的vtk安裝
linux
下安裝和windows下安裝思路是一樣的,我這裡假設你已經基本熟悉linux的基本操作。

1
、安裝cmake
現在從官方網站上下載的cmake是免編譯的,我們可以直接在cmake原始碼的bin資料夾下找到ccmake這個可執行檔案。就算沒有編譯,自己動動手,編譯一下吧。另外,最好把ccmake命令加入到系統可搜尋的範圍內,這樣就能直接執行ccmake命令了。
2
、解壓兩個壓縮包,建立所需資料夾window下安裝,指定一個主目錄,比如~/vtk/,建立三個資料夾,解包。
3
cmake
cd ~/vtk/bin/
ccmake ../vtk5.0
修改cmake的選項也參考前面windows下的vtk安裝,因為linux下的cmake是文字介面,所以操作起來不直觀,功能還是沒有少的。
4
編譯
cd ~/vtk/bin/
make
make
命令可以看成是gcc編譯器呼叫makefile檔案,進行編譯
5
安裝
cd ~/vtk/bin/
sudo make install
這裡之所以用sudo,是因為一些檔案的讀寫需要root許可權五、總結學習vtk最好的教材是vtk user guide,最好的解決的難題的方法是通過vtk mail list qq、論壇、google等方式。