1. 程式人生 > >VTK5.10、VTK6.3和QT4.8、QT5.5在VS2013、VS2010不同平臺搭建的心得

VTK5.10、VTK6.3和QT4.8、QT5.5在VS2013、VS2010不同平臺搭建的心得

集中版本的整合:

QT5和VS2013是64位的平臺,VS2013執行QT的時候必須改成x64平臺執行

QT4、QT5和VS2010是32位的平臺

1.首先我在VS2013整合QT5.5的時候,新建了QT的一個程式,執行的時候一直提示

模組計算機X86和目標計算機X64衝突

解決方案:出現這種問題的時候必須要檢查當前的各個模組是不是都是相容的,如:是不是都是32位的或64位,如果都是一樣位數的話則執行下面步驟。

專案右鍵,屬性》配置管理選擇》x64;

專案右鍵,屬性》聯結器》高階》目標計算機》MachineX64;

右鍵專案選擇“Change QT Version”---》選擇當前的QT版本,沒有的話就在解決方案右鍵,選擇》

“Change Solution‘s QT Version”》選64版本;

清理解決方案,重新編譯即可,一定要清理解決方案,否則不會成功

附:如果不是相同的位數的軟體,則需要下載或自己通過原始檔編譯,如QT在VS2010中只有32位,則必須要自己搭建64位的QT平臺。

a.配置QT

所有的版本都是一樣的,但是在QT5和VS整合的時候需要在VS中配置QT路徑變數(VS2010整合QT4就不會出現問題,因為都是32位的環境,而且不需要配置路徑,只要安裝即可,自動會設定好路徑)

(1)下載對應位數的QT版本進行安裝,注意這裡的QT是64位的

(2)配置計算機系統的環境變數

path:C:\Qt\Qt5.5.0\5.5\msvc2010\bin

新建QTDIR系統變數,與嵌入到VS的QT的路徑變數設定保持一致

(3)addin安裝後開啟vs,會看到有QT的選單項,選擇,與上面的QTDIR路徑保持一致

(4)配置完後重啟(不知道要不要重啟,好像不重啟會出問題,所以還是重啟下吧,如果沒有重啟也能配置成功在下面評論或私信下我)

b.VTK安裝

(1)然後在官網上下載VTK的兩個檔案,一個是資原始檔src,一個是資料檔案data,分別解壓;

(2)使用CMAKE進行編譯,選擇對應的選項(不同的VTK版本選項不同)

基本選項:

VTK5.10版本選項:

Buid_SHARED_LIBS:編譯生成連結動態庫;

CMAKE_INSTALL_PREFIX:Install單獨生成的資料夾路徑,建議和src.bin同意目錄下新建整合檔案,會生成bin,include,lib,plugins,share資料夾;

QT_QMAKE_EXECUTABLE:載入QT版本中的bin目錄下qmake.exe;

VTK_DATA_ROOT:載入資料資料夾

VTK_USE_QT

VTK_USE_QTCHARTS

手動新增變數:VTK_DIR(vtk的bin目錄)、VTK_USE_GUISUPPORT(bool)

VTK6以上版本選項:

Buid_SHARED_LIBS:編譯生成連結動態庫;

CMAKE_INSTALL_PREFIX:Install單獨生成的資料夾路徑,建議和src.bin同意目錄下新建整合檔案,會生成bin,include,lib,plugins,share資料夾;

QT_QMAKE_EXECUTABLE:載入QT版本中的bin目錄下qmake.exe;

VTK_DATA_ROOT:載入資料資料夾;

VTK_GROUP_QT,VTK_QT_VERSION:選擇5,

手動新增變數:VTK_DIR(vtk的bin目錄)、CMAKE_PREFIX_PATH(QT\..\msvc2010_opengl)

(3)在CMAKE生成的bin目錄下,用vs開啟vtk.sln檔案,在release和debug兩個環境下生成解決方案,最好先生成Debug版本,觀察有沒有錯誤;

(4)以管理員的身份開啟VTK.sln,僅生成install專案,生成成功的話就會在install資料夾存在bin,include,lib,plugins,share檔案,這是則說明VTK安裝成功;

c.QT和VTK整合

release版本中的QVTKWidgetPlugin.libQVTKWidgetPlugin.dll,拷貝到資料夾D:\Qt\Qt5.3.2\5.3\msvc2010_opengl\plugins\designer下,就可以在QT design中看到VTKWidgts選項,則說明QT和VTK整合成功。

e.執行VTK的時候,出現如下錯誤

1.


2.無法啟動此程式,因為計算機中丟失 vtkRenderingOpenGL-6.3.dll。嘗試重新安裝該程式以解決此問題。

原因:是由於VS中沒有載入VTK的.dll檔案,有三種解決方案

(1).用VS2010在debug下右鍵Install,選擇僅生成Install,在install生成的bin檔案中含有所有vtk的.dll庫檔案,把該路徑載入到計算機的系統變數path路徑中;

在沒有Install生成之前,可以使用下面兩種方法

(2). 在VS2010中的當前執行的專案->屬性->除錯->工作目錄,設定成cmake生成的bin檔案下的debug檔案,因為生成解決方案的時候在debug目錄中生成了很多VTK的.dll檔案,可以載入進來;

(3).把生成的debug目錄下的.dll檔案拷貝到系統的C:\Windows\System32資料夾中;

以上三種方法任選一種,在重新生成則會成功!!!

注意:一旦在編譯的時候出現錯誤千萬不要全部重新編譯,只要找到對應出錯的專案重新生成就可以,不然很耗時