前言
我在編譯 Mitk2018.4.2
版本失敗后,嘗試使用 Mitk2021
版本的編譯。
配置參數
系統:Windows10_64
IDE: Visual Stdio 2017 專業版
Qt : Qt 5.12.9
Python : Python 3.8.3
配置工具: CMake 3.20.0-rc2、Git 2.28.0.windows.1
三 方 庫: Boost 1.75.0、OpenSSL 1.1.0
插 件:qt-vsaddin-msvc2017-2.5.2-rev.01.vsix
下載鏈接:
Visual Stdio 2017 專業版
: 百度網盤:https://pan.baidu.com/s/1ZwmfkHPUO92VzWlsfKbcKA 提取碼:6666
Qt 5.12.9
: 百度網盤:https://pan.baidu.com/s/10-M6Jcm-rAntg7HTP0KRFg 提取碼:6666
Python 3.8.3
: 百度網盤:https://pan.baidu.com/s/1f_zEuSyQ7-zokaI5PhhmRw 提取碼:6666
CMake 3.20.0-rc2
: 百度網盤:https://pan.baidu.com/s/1BatYQ0XeKvO8SnmH0micMQ 提取碼:6666
Git 2.28.0.windows.1
: 百度網盤:https://pan.baidu.com/s/1fe_O-nUDkyun659PJZVhgg 提取碼:6666
Boost 1.75.0
: 百度網盤:https://pan.baidu.com/s/1jcgwuEiCilfAU4PFZ3Uh5g 提取碼:6666
OpenSSL 1.1.0
: 百度網盤:https://pan.baidu.com/s/1RkRa8IQqRUHCQqbZT_FZKg 提取碼:6666
qt-vsaddin-msvc2017-2.5.2-rev.01.vsix
: https://download.qt.io/official_releases/vsaddin/2.5.2/qt-vsaddin-msvc2017-2.5.2-rev.01.vsix
一、下載 Mitk2018.4.2
下載 Mitk2018.4.2
源代碼: git: https://github.com/MITK/MITK.git
到目標路徑,並且拉去源代碼到本地 .../,執行 git clone https://github.com/MITK/MITK.git Src
二、CMake 配置 Mitk
-
新建
.../Src
同級目錄Build
、Install
,CMake 將源代碼構建成 Visual Stdio 2017 x64 項目到Build
,在編譯Mitk完成后,會將生成信息輸出到Install
-
CMake
時可能會報QT5_DIR
沒有找到錯誤,指定 Qt 的 cmake 目錄即可,如C:/Qt/Qt5.12.9/5.12.9/msvc2017_64/lib/cmake/Qt5
,其他參數就不詳細介紹了
-
取消勾選
BUILD_TESTTING
-
勾選
MITK_BUILD_EXAMPLES
-
設置
CMAKE_INSTALL_PREFIX
值為.../Install
三、構建 ALL_BUILD 項目
-
出現構建錯誤、忽略錯誤選項、過濾
C4819
警告,並且把 報C4819
的文件保存為Unicode pack 1200
格式后重新編譯,因為Mitk
是在Liunx
平台下開發的,所以字符編碼不同會造成pache
出現不可預料的問題,在改完C4819
警告后,此錯誤將消失
-
重新編譯后還是會報一些錯誤,
C2220
、MSB600
、C4819
等,同樣先處理C4819
警告后編譯
2.1 我遇到 CTK
、DCMQI
源代碼拉去失敗問題,這個可以直接使用 git
拉下來,我感覺這樣快一點
拉取 CTK
,首先到 .../Build/ep/tmp/CTK-download-repoinfo.txt
,里面有 CTK
拉取鏈接,這個鏈接每個版本都不一樣
git clone https://github.com/commontk/CTK .../Build/ep/src/CTK
同樣,找到.../Build/ep/tmp/CTK-download-repoinfo.txt
拉取 DCMQI
git clone https://github.com/QIICR/dcmqi.git .../Build/ep/src/DCMQI
-
直到只剩下一個
MSB600
錯誤,這是由於 ITK 模塊拉去代碼失敗造成的,你可以翻個牆或者什么的,反正保證 git 下來的代碼在G:/Mitk-2021/Build/ep/src/ITK/Modules/Remote/IsotropicWavelets
里面就可以了
-
然后生成
MITK-build
項目,注意,ITK
模塊編譯好之后千萬不要再構建ALL_BUILD
項目,因為MITK_BUILD
會構建所有的模塊,而MITK-build
只會去鏈接那些子模塊,所以不會再報ITK
錯誤 -
我這里就沒有遇到問題了,構建成功后,驗證
Mitk
是否成功編譯,你可以在.../Build/MITK-build/bin/
下找到startMitkWorkbench_release.bat
,雙擊運行出現一下界面就表示編譯成功了
總結
不管遇到什么錯誤,都優先解決 C4819 警告,在業內字符集一直都是頭疼的問題。如果字符集解決不了,在分析問題、解決問題
根據業務需求,我的vtk模塊需要設置VTK_MODULE_ENABLE_VTKDICOM: YES,嗨呀,返工加上vtkDICOMReader。。。
Mitk2021.2
版本確實是比 Mitk2018.4.2
要簡單很多,后續我會繼續嘗試編譯 Mitk2018.4.2
版本,如果你對此感興趣,你可以去我的博客里查看相關隨筆