VTK親自安裝出現的問題及解決辦法(WIN7 64位 + VS2012 + VTK-5.10.1)

 參考了很多配置文章,只列出主要二個

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個,下面是解決辦法。

3This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended. 解決辦法爲: 

找到五個工程:vtkDLGvtkMDIvtkSDIWin32SampleMFCvtkMFC 打開前四個工程源文件中的stdAfx.h, vtkMFC工程下的vtkMFCWindow.cpp打開修改  

4stdafx.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)

 

 

 

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