VTK(一)vtk5.8 +vs2010。安裝總結


一。關於解壓安裝
1.安裝vtk-win32.exe,安裝到d:\vtk,目錄盡量短,因為后面引用更方便。
2.將vtk源代碼解壓到d:\vtk\sourcecode
3.下載vtkdata.zip,這是vtk例子所需要的數據,解壓到d:\vtk\vtkdata
4.安裝cmake
5.安裝Visual Studio 2010
6.解壓cmake.運行bin/cmakeGUI
 
二。關於CMake的操作。。
7.在第一個文本框“where is the source code”中選擇“D:/VTK/sourcecode”目錄。
8.在第二個文本框“where to build the binaries”中選擇輸出目錄,如:“d:/vtk/bin”
9.點擊“configure”按鈕,選擇“visual studio 10”(vs2010),然后,cmake 就會對系統舉行掃描了,停下來之后,我們就可以修改cmake選項了。掃描的歷程中不能出現不論什么錯誤,不論什么錯誤都會導致后來編譯VTK.dsw的錯誤,縱然能夠掃描完成。有錯誤的話,就要把D:\vtk\bin\目錄下除vtk.exe以外的所有文件和文件夾刪除,重新configure。
 
需要勾選選項包括:
10.查看列表中的選項,vtk_data_root,瀏覽到例子數據所在位置,如“d:\vtk\vtkdata”
11.build_examples:勾選上則編譯例子,
12.build_testing: 勾選上則編譯測試代碼,也是例子
13.vtk_use_parallel:勾選
14.build_shared_libs: 設置為on,將會多生成 dll 文件,這些dll需要拷到windows/system目錄下。要是用靜態庫編程,即off時,應用程序可以獨立運行,尺寸也比較大,要是用動態庫編程, 即on時,應用程序必須找到動態庫才能運行,但尺寸可以做得比較小。
15.vtk_use_guisupport:點擊“Advanced”選項,找到vtk_use_guisupport, 很多人把vtk 安裝好了,卻無法運行vtk 中與mfc 混合編程的例子,提示錯誤都是缺少vtkmfc.lib,問題就出在這個選項,我們必須把它設置為 on,再configure 之后,會出現一個新的選項vtk_use_mfc,把它也設置為on
16.修改完cmake 選項以后,不停的按configure 按鍵,直到沒有選項預示為紅色
17.點擊“Generate”按鈕,在bin目錄下生成vtk.sln等文件。
 
為啥需要勾選這些??隨便看看
      1、為什么要勾選vtk_use_mfc? 很多人把 vtk 安裝好了,卻無法運行vtk 中與mfc
       混合編程的例子,提示錯誤都是缺少vtkmfc.lib,問題就出在這個選項,我們必須
       把它設置為 on。

      2、vtk_use_qvtk,這是給QT用的vtk

      3、vtk_data_root: 目的是告訴cmake,vtk 需要的數據都在哪里,我們的數據在
      F:\Dev\SDK\VTK5.8\VTKData

      4、cmake_install_prefix: 這個是指定一個目錄把.h .lib .dll等精華放在這里,
      "VTK安裝三步曲"里說是為將來裝vtk做准備。

      5、build_examples: 就是詢問是否編譯 vtk 中的例子,初次用VTK,選上便於
      學習。

      6、build_shared_libs: 如果設置為off,就只會生成lib文件,用於開發肯定是
      夠了。如果設置為on,將會多生成 dll 文件,這些dll需要拷到windows/system
      目錄下。如果用靜態庫編程,即off時,應用程序可以獨立運行,尺寸也比較大,
      如果用動態庫編程,即on時,應用程序必須找到動態庫才能運行,但尺寸可以做
      得比較小。建議選On, 我試過選OFF,所謂的靜態編譯,但之后新建一個項目時,
      還是會出現找不到文件的問題。

      7.vtk_use_parallel: 對於想用vtk 做並行計算的朋友,要把這個選上,
      對於只想學學vtk 的,保持默認 off  
      
 
三。關於vs2010編譯工程文件
打開vtk.sln。加載一段時間,由於編譯耗時很久。。為防止出現可能的錯誤,首先需要修改一些文件和配置:共需要修改兩個錯誤。
step1:
錯誤一:是由於windows的IE版真相對vs2008過低,提示sdk中一個錯誤
fatal error C1189: #error :  This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.

①  找到sourecode\GUISupport\MFC\vtkMFCWindow.cpp ,找到類似以下源碼並修改數值如下:

#ifndef WINVER
#define WINVER 0x0501
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501 // =_WIN32_WINNT_NT4
#endif
#ifndef _WIN32_IE
#define _WIN32_IE 0x0601 //=_WIN32_IE_IE60SP1
#endif

②如果之前Cmake勾選了 build_examples,工程中含有VKT的examples,僅改上面代碼還不夠,還需要找到以下4個文件

 sourecode\Examples\GUI\Win32\vtkMFC\vtkDLG\stdafx.h
 sourecode\Examples\GUI\Win32\vtkMFC\vtkMDI\stdafx.h
 sourecode\Examples\GUI\Win32\vtkMFC\vtkSDI\stdafx.h
 sourecode\Examples\GUI\Win32\SampleMFC\stdafx.h

找到類似以下源碼部分,並修改數值如下:

#ifndef WINVER        
#define WINVER 0x0501    
#endif

#ifndef _WIN32_WINNT    
#define _WIN32_WINNT 0x0501    
#endif            

#if _MSC_VER >= 1300
#ifndef _WIN32_WINDOWS    
#define _WIN32_WINDOWS 0x0501 
#endif
#endif

#ifndef _WIN32_IE      
#define _WIN32_IE 0x0601  
#endif

step2錯誤二:

如果之前Cmake勾選了 build_examples,工程中含有VKT的examples,在編譯過程中,以下四個項目vtkDLG、vtkMDI、vtkSDI、Win32SampleMFC,可能還會出現類似下面的LINK鏈接錯誤:稱找不到vtkIO.dll

error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: static class...

修改方法:

對於這四個項目選擇“項目->屬性->鏈接器->輸入->附加依賴項->(編輯)”復制粘貼下面的路徑。

以此添加入vtkIO.lib庫(名稱參考上面的vtksys.lib即可)這里路徑為:.

..\..\..\..\..\bin\Debug\vtkIO.lib
至此,修改參數完畢。編譯應該不會有錯誤了。
 
step3:
 
18.用Visual Studio 2010編譯bin 目錄下的VTK.sln文件,生成解決方案,時間較長。結果保存在. D:\vtk\bin\bin目錄下。
19.將D:\vtk\bin\bin\debug這個文件夾選擇此中所有的DLL 后綴的文件全部復制到c:\windows\system32 (調試時推薦),或者拷貝到VC項目可執行文件所在位置(安裝到其他機器時拷貝)。
 
step4:執行一個例子。。cone6
右鍵cone6->調試->啟動新實例-》是否重新生成***工程-》否-》結果如下圖。
 
最后將D:\vtk\bin\bin\debug這個文件夾選擇此中所有的DLL 后綴的文件全部復制到c:\windows\system32 (調試時推薦),或者拷貝到VC項目可執行文件所在位置(安裝到其他機器時拷貝)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM