前言
我在編譯 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 版本,如果你對此感興趣,你可以去我的博客里查看相關隨筆
