前言

我在编译 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

  1. 新建 .../Src 同级目录 BuildInstall,CMake 将源代码构建成 Visual Stdio 2017 x64 项目到 Build,在编译Mitk完成后,会将生成信息输出到 Install

  2. CMake 时可能会报 QT5_DIR 没有找到错误,指定 Qt 的 cmake 目录即可,如 C:/Qt/Qt5.12.9/5.12.9/msvc2017_64/lib/cmake/Qt5,其他参数就不详细介绍了

  3. 取消勾选 BUILD_TESTTING

  4. 勾选 MITK_BUILD_EXAMPLES

  5. 设置 CMAKE_INSTALL_PREFIX 值为 .../Install

三、构建 ALL_BUILD 项目

  1. 出现构建错误、忽略错误选项、过滤 C4819 警告,并且把 报 C4819 的文件保存为 Unicode pack 1200 格式后重新编译,因为Mitk是在Liunx平台下开发的,所以字符编码不同会造成 pache 出现不可预料的问题,在改完 C4819 警告后,此错误将消失

  2. 重新编译后还是会报一些错误,C2220MSB600C4819 等,同样先处理 C4819 警告后编译

2.1 我遇到 CTKDCMQI 源代码拉去失败问题,这个可以直接使用 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

  1. 直到只剩下一个 MSB600 错误,这是由于 ITK 模块拉去代码失败造成的,你可以翻个墙或者什么的,反正保证 git 下来的代码在 G:/Mitk-2021/Build/ep/src/ITK/Modules/Remote/IsotropicWavelets 里面就可以了

  2. 然后生成 MITK-build 项目,注意,ITK 模块编译好之后千万不要再构建 ALL_BUILD 项目,因为 MITK_BUILD 会构建所有的模块,而 MITK-build 只会去链接那些子模块,所以不会再报 ITK 错误

  3. 我这里就没有遇到问题了,构建成功后,验证 Mitk 是否成功编译,你可以在 .../Build/MITK-build/bin/ 下找到 startMitkWorkbench_release.bat,双击运行出现一下界面就表示编译成功了

总结

不管遇到什么错误,都优先解决 C4819 警告,在业内字符集一直都是头疼的问题。如果字符集解决不了,在分析问题、解决问题
根据业务需求,我的vtk模块需要设置VTK_MODULE_ENABLE_VTKDICOM: YES,嗨呀,返工加上vtkDICOMReader。。。
Mitk2021.2 版本确实是比 Mitk2018.4.2 要简单很多,后续我会继续尝试编译 Mitk2018.4.2 版本,如果你对此感兴趣,你可以去我的博客里查看相关随笔

posted on 2021-03-10 16:20  怪小子  阅读(1140)  评论(2编辑  收藏  举报