1. 程式人生 > >VTK(1)——編譯安裝

VTK(1)——編譯安裝

專案環境:QT+VTK+CMake

本文使用到的檔案包有:

  1. visual studio 2013
  2. DXSDK_Jun10
  3. cmake-3.3.2-win32-x86
  4. Qt5.7
  5. qt-vs-addin-1.2.4-opensource
  6. TBB (Thread Building Blocks)
  7. vtk 7.1

1. 安裝 visual studio 2013 Community 版本

2. 安裝 DXSDK_Jun10

    3. 安裝它的預設位置和預設的可選功能

3.安裝 cmake-3.3.2-win32-x86

     3.安裝在預設位置

    4. 選擇 ”Add CMake to the system PATH for current user”

4. 安裝 Qt5.7

     3. 安裝

   4.確保選擇所有元件

   5.安裝完成後,不要開啟Qt,只要關閉視窗即可

5. 安裝 qt-vs-addin-1.2.4-opensource

    3. 安裝它的預設位置和預設的可選功能

6. 安裝 TBB (Thread Building Blocks):

  1. 下載網址 https://www.threadingbuildingblocks.org/download
  2. 解壓檔案
  3. 將“TBB\bin”目錄新增到系統環境變數“Path”中

     4. 建立一個名為“TBBROOT”的新系統環境變數,將TBB目錄新增到該變數中

7. 設定工作資料夾

  1. 在d:盤下,建立一個名為 “UlabVTK” 的新資料夾;(命名隨意,不使用中文字元)
  2. 將 “vtk-7.00” 資料夾移動到 “UlabVTK” 資料夾;
  3. 在vtk資料夾中新建一個資料夾,命名為“aftermake”;

8.使用CMake編譯vtk

  1. 下載 vtk 7.1

         2)下載最新的 vtk zip file(7.1version)

        3)將檔案解壓到vtk資料夾

2. 編譯 vtk 原始碼

    1)開啟 CMake

    2)設定 “source code” 和 “build the binaries” 的路徑

    3)選擇生成器Visual Studio 12 2013 Win64

   4)點選 “Configure”

   5)完成“配置”後,選擇以下選項;

 6)配置後,會出現一些錯誤。按照圖片修改“VTK_QT_VERSION”。

7)然後配置,新增Qt5.7目錄

      8)新增TBB(Thread Building Blocks).

      ①找到“VTK_SMP_IMPLEMENTATION_TYPE”,選擇TBB選項

      ②然後點選 Configure.

      ③這裡還有一些錯誤,還需要新增TBB的目錄。

注意:

a)選擇正確的檔案來匹配不同的“名稱”(TBB_LIBRARY_DEBUG和TBB_LIBRARY_RELEASE)

b)選擇intel64和vc12(visual studio 2013)。

④點選 Configure, 新增以下變數地址

TBB_MALLOC_LIBRARY_DEBUG

TBB_MALLOC_LIBRARY_REALEASE  

     TBB_MALLOC_PROXY_LIBRARY_DEBUG

 TBB_MALLOC_PROXY_LIBRARY_RELEASE

以下圖片僅提供參考

  9)在“aftermake”目錄中,建立一個名為“bin-lib”的資料夾。

       在“CMAKE_INSTALL_PREFIX”的“Name”中填寫“bin-lib”的路徑,如圖所示。

10) 其他 “Name” 是預設的

11)點選configure後,單擊“Generate”。

9. 構建 VTK 專案.(此處用VS方式,QT構建方式參考文末)

  1. 啟動Visual Studio2013作為管理員模式。

    2.找到“VTK。“aftermake”資料夾中的sln檔案,使用visual studio開啟它。

  3. 選擇 debug 模式

  4.找到“ALL_BUILD”,右鍵單擊,選擇“Build”。

5.找到 “INSTALL”, 右鍵單擊,選擇“Build”.

6. 當構建完成後,不要關閉視窗。轉到之前建立的bin-lib資料夾

在這個資料夾中,您可以找到一些建立的資料夾。建立一個新資料夾“debug”,並將除“debug”之外的所有資料夾放入debug資料夾中。

7. 回到Visual Studio,將構建模式更改為“Release”,並再次構建“ALL-BUILD”和“INSTALL”。

8. 再次進入bin-lib資料夾。在這個資料夾中,您可以找到一些剛剛建立的新資料夾。建立一個新的資料夾“Release”,並將所有其他資料夾(除“debug”資料夾外)放入“Release”資料夾中

9.到這一步就完成了

在系統環境變數中新增

D:\UlabVTK\aftermake\bin_lib\debug\lib\cmake\vtk-6.3

D:\UlabVTK\aftermake\bin_lib\release\lib\cmake\vtk-6.3

注:在此過程中遇到的多個問題在這裡進行備註

問題一

問題:找不到庫檔案

① 找不到vkt-dir庫

② 找不到其他的.dll檔案

場景:用cmake執行vtk示例程式出現找不到庫的情況下,我手動將缺少的庫新增到了環境變數中,經過多次的重新配置環境發現,是其中的環境變數的值配置有誤產生的,此處可以注意兩點

解決方式

           ①路徑中 \ 的方向

           ②路徑是否正確

問題二

1. 問題:cmake檔案編譯與理解

2. 理解Cmake:cmake是幫我們組織工程檔案的,在QT中由qmake幫我們生成的.pro來組織,VS中由.sln來組織。使用cmake組織檔案首先需要一個CMakeLists.txt檔案,注意需要區分檔名的大小寫。(最初接觸vtk時這裡是最難理解的地方)

Cmake維基百科定義:CMake是個一個開源的跨平臺、自動化建構系統,用來管理軟體建置的程式,並不相依於某特定編譯器。並可支援多層目錄、多個應用程式與多個函式庫。

3. CMakeLists.txt檔案原始碼:

cmake_minimum_required(VERSION 2.8)

PROJECT(Test)

find_package(VTK REQUIRED)

include(${VTK_USE_FILE})

add_executable(Test MACOSX_BUNDLE Test.cpp )
 
target_link_libraries(Test ${VTK_LIBRARIES})

4. 命令說明:

cmake_minimum_required() : 用於指定構建工程時所需的CMake版本
project(): 用於指定工程名稱
find_package(): 用於搜尋並載入外部工程,引數[REQUIRED]表示所要搜尋的外部工程對本工程來說是必須的,如果沒有搜尋到,CMake會終止整個工程構建過程。
include() : 指定載入一個檔案或者模組,如果指定的是模組,那麼將在CMAKE_MODULE_PATH中搜索這個模組並載入
add_executable() : 定義這個工程會生成一個可執行檔案,使用變數${PROJECT_NAME}的值來指定即將生成的可執行檔案的名字
target_link_libraries(): 指定生成可執行檔案時需要連結哪些檔案

5. 編譯示例(此處僅寫出qt方法,vs編譯方法參見上面vtk編譯過程)

Step1: 編寫CMakeLists.txt檔案(如上)

Step2: 在Qt中開啟示例的CMakeLists.txt檔案

Step3: 右鍵點選專案工程,彈出的下拉列表中選擇執行CMake

Step4: 構建專案

Step5: 執行專案

附VTK相關示例下載地址:

連結: https://pan.baidu.com/s/1ndc24lxgbx0OQ6EoBwj83Q 密碼: 3ap6