前言
我在编译 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
版本,如果你对此感兴趣,你可以去我的博客里查看相关随笔