昨天下午開始安裝VTK,過程還比較容易,根據網上可以隨便就能找到的安裝過程安裝就可以。把大體的步驟和遇到的問題總結一下:
1,首先在VTK官方網站(http://www.vtk.org/)上下載當前版本的壓縮文件
|
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安裝三步曲"的基礎上完成,並補充了在其之外遇到的各種問題。 1. 必須要下載的東西,VC6已經裝好爲前提: 2. 先執行 vtk-5.0.3-win32.exe安裝到C:/VTK 5.0, 安裝後會產生 vtk5.0 文件夾裏面還包括 bin 等子文件夾。 3. 將 vtk-5.0.4.zip 解壓到c:/VTK 5.0/VTK, 將vtkdata-5.0.4.zip也解壓到c:/VTK 5.0/vtkdata 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選項了。 還有要注意的就是: 都沒問題了所有項目會變成灰色。這時就可以按OK了,幾秒鐘後,cmake自動退出,爲VC6準備的make文件已經生成好。 5. 用 vc6.0打開 bin目錄下的 vtk.dsw 文件,直接build。這一般要花掉十幾分鍾。結果保存在c:/vtk5.0/bin/bin 。 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進去,確保每一步都在一行,以後會經常用到的:
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的第一個例子就會知道上面的程序在做些什麼。 10. CSDN原來有一個"VTK4.2學習例程",有20個含註解的程序,我看過之後添加了些註釋並重新上傳了,初學vtk的朋友建議看一下。 大功告成。。 |