參考了很多配置文章,只列出主要二個
http://blog.csdn.net/yunhaic/article/details/40653221
http://wenku.baidu.com/link?url=JRcgVmoM0UsnrzzQx2ch25W1QLpPl3voOz9BIysJzhtOwSAOZDqODetrmDfuVohMHOBxGzroD3j_EwrV4obWHRQGBugKmCHQP34rHKOjGaO
我的安裝路徑
安裝VTK遇到了一些問題,參考了很多配置的文章才找到解決辦法,寫下來希望能給大家帶來快捷的幫助
1、Cmake遇到的一些問題及解決
1.1 找不到VTK_DIR
手動設置爲C:\vtk\VTKbin
1.2 找不到TCL_LIBRARY TK_LIBRARY
因爲我的計算機沒有安裝TCL,所以CMake就找不到吧,所以我就在http://www.activestate.com/activetcl/downloads,一步一步安裝就可以了
那麼TCL_LIBRARY就可以手動設置爲C:\vtk\TCL\lib\tcl86.lib,TK_LIBRARY就可以手動設置爲C:\vtk\TCL\lib\tk86.lib
1.3 CMake時如果你的build_shared_libs設置爲on的話,將會多生成 dll 文件,很多人會疑問那些dll文件的目錄在哪兒?還有什麼時候經行拷貝轉移了?
CMake的時候不用經行拷貝轉移,當所有代碼重新生成的時候,即用VS2012打開E:\vtk\VTKbin\Utilities\MaterialLibrary目錄下的 MaterialLibrary.sln 文件,右鍵點擊All_Build選擇重新生成完成之後,把E:\vtk\VTKbin\bin\Debug(這是參考作者的目錄)下的所有dll文件都拷貝到Windows\SysWOW64。
2、CMake完成之後需打開E:\vtk\VTKbin下的VTK.sln,右鍵點擊All_Build選擇重新生成,很多人用了好幾個小時甚至幾天,但這個過程我只用了15分鐘左右,哈哈,很開心,但重新生成成功了141個,失敗了6個,下面是解決辦法。
3、This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended. 解決辦法爲:
找到五個工程:vtkDLG、vtkMDI、vtkSDI、Win32SampleMFC、vtkMFC 打開前四個工程源文件中的stdAfx.h, vtkMFC工程下的vtkMFCWindow.cpp打開修改
4個stdafx.h如下修改
#ifndef WINVER // Allow use of features specific to Windows 95 and Windows NT 4 or later.
#define WINVER 0x0601 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later. #endif
#ifndef _WIN32_WINNT // Allow use of features specific to Windows NT 4 or later. #define _WIN32_WINNT 0x0601 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later. #endif
#if _MSC_VER >= 1300
#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later. #define _WIN32_WINDOWS 0x0601 // Change this to the appropriate value to target Windows Me or later. #endif #endif
#ifndef _WIN32_IE // Allow use of features specific to IE 4.0 or later.
#define _WIN32_IE 0x0800 // Change this to the appropriate value to target IE 5.0 or later. #en
vtkMFCWindow.cpp中的部分代碼:
// Allow use of features specific to Windows 95 and Windows NT 4 or later. #ifndef WINVER #define WINVER 0x0601 #endif
// Define _WIN32_WINNT and _WIN32_IE to avoid the following error with Visual // Studio 2008 SP1:
// "C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\sdkddkver.h(217) : // fatal error C1189: #error : _WIN32_WINNT settings conflicts with _WIN32_IE // setting"
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0601 // =_WIN32_WINNT_NT4 #endif
#ifndef _WIN32_IE
#define _WIN32_IE 0x0800 //=_WIN32_IE_IE60SP1 #endif
此時,應該沒有問題了
4、直接測試VTK自帶的例子
打開C:\vtk\VTKbin\Examples\VTKExample.sln,選中你要測試的項目設爲啓動項目,就可以看到結果了噢
5、自己建項目
新建項目Test(控制檯應用程序空項目),增加Test.cpp文件,用Cone6.cxx的文件內容覆蓋Test.cpp的內容。
需自己配置的三大步驟
5.1 項目屬性->配置屬性->VC++目錄->庫目錄: C:\vtk\VTKbin\bin\debug
5.2 項目屬性->配置屬性->VC++目錄->包含目錄 ,拷入入下述內容:
C:\vtk\VTKbin; C:\vtk\VTKbin\bin; C:\vtk\VTKsourcecode\GenericFiltering;C:\vtk\VTKsourcecode\Common; C:\vtk\VTKsourcecode\IO;
C:\vtk\VTKsourcecode\Filtering; C:\vtk\VTKsourcecode\Rendering; C:\vtk\VTKsourcecode\Graphics; C:\vtk\VTKsourcecode\VolumeRendering;
C:\vtk\VTKsourcecode\Imaging; C:\vtk\VTKsourcecode\Hybrid; C:\vtk\VTKsourcecode\GUISupport; C:\vtk\VTKsourcecode\ Utilities;
C:\vtk\VTKbin\ Utilities; C:\vtk\VTKsourcecode\Parallel; C:\vtk\VTKsourcecode\Widgets
5.3位於項目屬性->鏈接器->輸入->附加依賴項 ,拷入下述內容(注意:C:\vtk\VTKbin\bin\Debug裏的lib文件都要附加上去):
kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;comctl32.lib;vfw32.lib;ws2_32.lib;
wsock32.lib;opengl32.lib;vtkCharts.lib;vtkGeovis.lib;vtkViews.lib;vtkInfovis.lib;vtkRendering.lib;vtkIO.lib;vtkDICOMParser.lib;vtkNetCDF_cxx.lib;
vtkNetCDF.lib;vtkmetaio.lib;vtksqlite.lib;vtkpng.lib;vtktiff.lib;vtkzlib.lib;vtkjpeg.lib;vtkexpat.lib;vtkGraphics.lib;vtkverdict.lib;vtkImaging.lib;
vtkFiltering.lib;vtkCommon.lib;vtksys.lib;vtkftgl.lib;vtkfreetype.lib;vtkWidgets.lib;%(AdditionalDependencies)