VTK的安裝 存檔+網摘

昨天下午開始安裝VTK,過程還比較容易,根據網上可以隨便就能找到的安裝過程安裝就可以。把大體的步驟和遇到的問題總結一下:

1,首先在VTK官方網站(http://www.vtk.org/)上下載當前版本的壓縮文件

Platform Files
Windows (Installer) vtk-5.6.0-win32.exe
Source vtk-5.6.0.zip
  vtk-5.6.0.tar.gz
Data vtkdata-5.6.0.zip
  vtkdata-5.6.0.tar.gz
Documentation vtkDocHtml-5.6.0.tar.gz

Latest Release (5.6)

 

對於.gz的文件可以不用下載(除非你的操作系統是linux).

2,下載後,首先安裝vtk-5.6.0-win32.exe可執行文件,然後將後兩個文件解壓縮到該項目的系統目錄下,這邊具體的位置,可以根據自己的需要隨便設置,當然需要在CMake中按照對應的項目,標註好即可。

3,在解壓縮文件後,需要在CMake中構建工程文件,這裏我是用了2.6的版本,將VTK對應的解壓縮文件的路徑添加到CMake的源文件目錄中,自己可以設置創建好的工程文件的位置。然後可以點擊Configure,這個時候可以選擇advanced選項,看到比較多的make選項,具體的可以參見網絡上的說明,包括對mfc的選項。

在make文件的時候,我一開始遇到點問題,我用VS2005編譯的,Configure會出錯,在系統路徑中添加了VC6.0的編譯器的位置後,問題解決了,不知道是什麼原因。但是好在沒有費多大功夫。

4,等編譯完畢後,可以到對應的debug目錄下尋找你的lib文件了,Cmake選項裏可以選擇cmake_install_prefix,設置你想把lib文件放置的位置,可以得到所有的lib文件,不考慮其他的工程文件。個人感覺都可以,因爲從工程文件中找出lib文件也不是件困難的事情。

5,按照網摘上寫的,將lib的路徑,include的路徑,及鏈接的input項目設置好就可以運行你的第一個VTK的項目了。我按照例子中給出的實例,試驗了一下,成功,沒問題撒。

希望你的安裝過程也如此順利,但是遇到點問題也沒什麼,找找原因多試幾次就好了啊。

 

下面給出網摘的內容:

 

 

本文在CadCaeCam論壇的精華貼"VTK安裝三步曲"的基礎上完成,並補充了在其之外遇到的各種問題。
本文以VC6爲例,要用VS.NET 2005的請參見:在Visual Studio 2005環境下安裝VTK教程 (已測試通過)

1. 必須要下載的東西,VC6已經裝好爲前提:
vtk-5.0.4-win32.exe 安裝程序 http://vtk.org 的Download
vtk-5.0.4.zip 源程序
vtkdata-5.0.4.zip 數據
vtkDocHtml VTK手冊(可選)
cmake-2.4.7-win32-x86.exe http://www.cmake.org/HTML/Index.html

2. 先執行 vtk-5.0.3-win32.exe安裝到C:/VTK 5.0, 安裝後會產生 vtk5.0 文件夾裏面還包括 bin 等子文件夾。
(爲了方便請統一用這個目錄,我在後文中提供了一個教程,其project setting也是按這個目錄配置的)

3. 將 vtk-5.0.4.zip 解壓到c:/VTK 5.0/VTK, 將vtkdata-5.0.4.zip也解壓到c:/VTK 5.0/vtkdata
(其實既然要用源文件編譯,windows install的安裝並不是必須的,但這是按"VTK安裝三步曲"的順序來的,很多人都統一這樣用的,避免不必要的麻煩,也就不改了)

4. 安裝 cmake-2.4.7-win32-x86.exe,方便起見裝到c:/cmake。運行cmake,設置sourse code目錄爲c:/vtk5.0/VTK/, build目錄爲c:/vtk5.0/bin/

按 configure 按鈕,cmake 軟件會讓你選擇需要使用的編譯器,這裏我們選vc6.0,然後cmake會描所需要的文件,停下來之後,我們就可以修改 cmake選項了。
打開Show Advanced Values再configure,纔可以看到一個vtk_use_guisupport,打開它,才能選vtk_use_mfc,再configure,configure的次數是無所謂的。
很多人把 vtk 安裝好了,卻無法運行vtk 中與mfc 混合編程的例子,提示錯誤都是缺少vtkmfc.lib,問題就出在這個選項,我們必須把它設置爲 on。
至於vtk_use_qvtk,這是給QT用的vtk,但目前只支持QT3,現在的版本是QT4,我試過了,cmake通不過。只能等着新版cmake了。

還有要注意的就是:
vtk_data_root: 目的是告訴cmake,vtk 需要的數據都在哪裏,我們的數據在c:/vtk/vtkdata/
cmake_install_prefix: 這個是指定一個目錄把.h .lib .dll等精華放在這裏,"VTK安裝三步曲"裏說是爲將來裝vtk做準備,我不太清楚,反正用它默認的就好了。
build_examples: 就是詢問是否編譯 vtk 中的例子,你在看這個教程,說明肯定是初次用VTK,建議選上。
build_shared_libs: 如果設置爲off,就只會生成lib 文件,用於開發肯定是夠了。如果設置爲on,將會多生成 dll 文件,這些dll需要拷到windows/system目錄下。如果用靜態庫編程,即off時,應用程序可以獨立運行,尺寸也比較大,如果用動態庫編程,即on時,應用程序必須找到動態庫才能運行,但尺寸可以做得比較小。建議選On, 我試過選OFF,所謂的靜態編譯,但之後新建一個項目時,還是會出現找不到文件的問題。
vtk_use_parallel: 對於想用vtk 做並行計算的朋友,要把這個選上,對於只想學學vtk 的,保持默認 off

都沒問題了所有項目會變成灰色。這時就可以按OK了,幾秒鐘後,cmake自動退出,爲VC6準備的make文件已經生成好。

5. 用 vc6.0打開 bin目錄下的 vtk.dsw 文件,直接build。這一般要花掉十幾分鍾。結果保存在c:/vtk5.0/bin/bin 。
如果這個過程報錯,可能是防火牆、殺毒軟件的原因,請關掉再試。還有就是,我曾經試圖在機器上先給VS2005再給VC6裝VTK,結果VC6編譯時就死在example那裏了。最後只能刪掉所有vtk目錄從第一步再來一遍,only for VC6才通過的。
順利通過編譯就可以繼續了。

6. 第4步時build_shared_libs是ON的話,把C:/VTK 5.0/bin/bin/Debug裏生成的dll文件都拷到windows/system目錄下。

7. 試一下。打開C:/VTK 5.0/bin/Examples/All/VTKExamples.dsw,選擇Cone項目,右鍵set as active project(VC不熟的人一定要記得這個!),然後,build,run. 這時應該能正確運行了。

8. 但還沒完。這時能運行的只是vtk自己帶的項目,自建的項目還需要自己進行一些設定:

新建一記事本,一定要取消自動換行。把下面的"三大步"copy進去,確保每一步都在一行,以後會經常用到的:

一、修改Project setting->C/C++ ->Category->Preprocessor->Additional include directories:
C:/VTK 5.0/VTK/GenericFiltering,C:/VTK 5.0/VTK/Common,C:/VTK 5.0/VTK/IO,C:/VTK 5.0/VTK/Filtering,C:/VTK 5.0/bin,C:/VTK 5.0/VTK/Rendering,C:/VTK 5.0/VTK/Graphics,C:/VTK 5.0/VTK/VolumeRendering,C:/VTK 5.0/VTK/Imaging,C:/VTK 5.0/VTK/Hybrid,C:/VTK 5.0/VTK/GUISupport,C:/VTK 5.0/VTK/include/vtk-5.0,C:/VTK 5.0/VTK/Parallel,C:/VTK 5.0/VTK/lib,C:/VTK 5.0/VTK/Widgets

二、修改Project setting->Link->Input->Object/library modules:
opengl32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib vtkCommon.lib vtkDICOMParser.lib vtkexoIIc.lib vtkexpat.lib vtkFiltering.lib vtkfreetype.lib vtkftgl.lib vtkGenericFiltering.lib vtkGraphics.lib vtkHybrid.lib vtkImaging.lib vtkIO.lib vtkjpeg.lib vtkNetCDF.lib vtkpng.lib vtkRendering.lib vtksys.lib vtktiff.lib vtkVolumeRendering.lib vtkWidgets.lib vtkzlib.lib

三、還有Additional library path:
C:/VTK 5.0/bin/bin/Debug

 

 

 

 

 

 

 




像Cannot open include file: 'vtkConeSource.h':這樣的錯誤都是上面三大步沒走對或dll沒拷到windows/system下造成的。要建立新項目,必須重新配置三大步,因爲那三步都是Project setting裏的,新項目沒有默認這些設置。
如果某個項目再提示缺什麼lib或.h的話,再臨時加上去就行了。

9. 這時新建一個project, win32 console application, an empty project, 生成後給source files加一個test.cpp,把下面的代碼放進去:

#include "vtkConeSource.h"
#include
"vtkPolyDataMapper.h"
#include
"vtkRenderWindow.h"
#include
"vtkCamera.h"
#include
"vtkActor.h"
#include
"vtkRenderer.h"
#include
"vtkProperty.h"
int main()
...{
   vtkConeSource
*cone = vtkConeSource::New();
   cone
->SetHeight( 3.0 );
   cone
->SetRadius( 1.0 );
   cone
->SetResolution( 10 );

   vtkPolyDataMapper
*coneMapper = vtkPolyDataMapper::New();
   coneMapper
->SetInputConnection( cone->GetOutputPort() );

   vtkActor
*coneActor = vtkActor::New();
   coneActor
->SetMapper( coneMapper );

   vtkRenderer
*ren1= vtkRenderer::New();
   ren1
->AddActor( coneActor );
   ren1
->SetBackground( 0.1, 0.2, 0.4 );

   vtkRenderWindow
*renWin = vtkRenderWindow::New();
   renWin
->AddRenderer( ren1 );
   renWin
->SetSize( 300, 300 );

  
int i;
  
for (i = 0; i < 360; ++i)
    
...{
     renWin
->Render();
     ren1
->GetActiveCamera()->Azimuth( i );
     }


   cone
->Delete();
   coneMapper
->Delete();
   coneActor
->Delete();
   ren1
->Delete();
   renWin
->Delete();

  
return 0;
}


看過vtk example的第一個例子就會知道上面的程序在做些什麼。
如果你一定要生成a simple project的話,這時需要做的是:刪掉StdAfx.cpp和StdAfx.h及其在main()之上的include,還有在Project setting->C/C++ ->Category->Precompiled Headers裏選Not using precompiled headers.

10. CSDN原來有一個"VTK4.2學習例程",有20個含註解的程序,我看過之後添加了些註釋並重新上傳了,初學vtk的朋友建議看一下

大功告成。。

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