# MITK2016.11源码编译


下面是针对 MITK 2016.11 源码编译整理的完整指南,替换原文中的代码分割内容:


# 1. 环境准备

确保以下依赖安装完毕(以 Windows 为例):

  • Qt:5.7.1
  • CMake:3.7
  • 编译器:MSVC 2015、2017

我已经安装好了MSVC 2017,所以没有安装 MSVC 2015,亲测MSVC 2017也可以成功编译。

Qt的目录需要放到环境变量中,例如在环境变量的Path下添加:D:\ProgramData\Qt\5.7\5.7\msvc2015_64\bin。

MSVC的bin目录也要放到环境变量中,防止Cmake找不到编译器。

cmake也要安装低版本的,否则也会编译失败。


# 2. 获取源码

https://www.mitk.org/download/releases/MITK-2016.11/

直接下载windows版本的源码


# 3. 创建构建目录

推荐使用独立目录组织源码和编译输出,最好在盘符的根目录创建build目录。

这种结构可避免路径过长导致的问题。


# 4. 配置 superbuild(CMake GUI)

  1. 打开 CMake GUI,设置:

    • Where is the source codeD:\MITK-2016.11-src
    • Where to build binariesD:\MITK-2016.11-superbuild
  2. 选择生成器为 “Visual Studio 15 2017 Win64”

  3. 点击 Configure,等待红色变量项加载

  4. 点击 Configure 直到没有红色警告,再点击 Generate


# 5. 编译 MITK

D:\MITK-2016.11-superbuild 中,会生成一个 .sln 文件:

  • 使用 Visual Studio 打开此 MITK-superbuild.sln
  • 设置 Release 模式,生成 BUILD_ALL
  • 编译后,在D:\MITK-2016.11-superbuild中会生成 MITK-build
  • 所有编译完之后,只有MITK-build的项目会出现错误,其他项目都可以正常编译。
  • 若其他项目仍有错误,需检查相应的错误,并查找解决办法。

注意:

  • 若编译过程中出现错误,请先检查依赖是否安装正确、路径是否正确、CMake是否配置正确
  • 若编译过程中出现 MSB6006 / 路径过长,请尝试缩短路径、移至根目录;确保 ITK/VTK 构建无错误
  • 若编译过程中出现 Qt相关的错误,请确保Qt使用的是5.7.1版本,并且在环境变量中设置了路径,高版本容易出现兼容性问题

下面是对你文章的补全建议,增加 superbuild 自定义模块、运行说明、打包发布等细节,结构统一清晰:


# 6. 使用 OpenCV、ACVD 等模块

如果需要启用 OpenCVACVD、以及如 remeshing(重网格化)相关模块,在 superbuild 的 CMake 配置阶段需要手动勾选相关选项:

在 CMake GUI 或 ccmake 中,分别开启:

  • MITK_USE_OpenCV:启用 OpenCV 支持,superbuild 会自动下载并构建 OpenCV 2.4.x
  • MITK_USE_ACVD:启用 ACVD 重网格化算法
  • 如果更高版本 OpenCV,可以通过指定 EXTERNAL_OpenCV_DIR 指向本地 OpenCV 构建目录,使 MITK 使用已有安装版本 ([docs.mitk.org][1])

同时建议:

  • 设置 CMAKE_PREFIX_PATH 指向 Qt 安装目录,如 D:/ProgramData/Qt/5.7/msvc2015_64
  • 勾选 MITK_USE_Qt5,确保 Qt 模块被激活 ([docs.mitk.org][1])

配置完后,重新 Configure → Generate,确保相关变量都已设置生效。


# 7. 定制 Superbuild 与注入已有库

若你已有第三方库(如 OpenCV、Boost、ITK、VTK、DCMTK 等),无需 superbuild 自动下载,可以“注入”本地版本来提高编译效率:

设置变量:

  • EXTERNAL_OpenCV_DIR
  • EXTERNAL_ITK_DIR
  • EXTERNAL_VTK_DIR
  • EXTERNAL_DCMTK_DIR
  • EXTERNAL_BOOST_ROOT

CMake 会使用指定路径下的预编译版本,而不会重新构建这些库 ([docs.mitk.org][1])。


# 8. 编译过程建议

在 Windows(Visual Studio)环境:

  1. 打开 MITK-superbuild.sln,将模式设置为 Release
  2. 右键 BUILD_ALL(或 superbuild 顶级目标)→ Build
  3. 编译完成后,核心路径结构如下:
MITK-superbuild/
  ├─ src/
  ├─ ep/        ← 外部库
  ├─ MITK-build/ ← MITK 主项目
  ├─ bin/, lib/…

当然可以,以下是你文章的 第9节“继续编译 MITK Workbench 应用” 的完整补充内容,以及后续可以加的运行、打包说明,风格与前文一致、结构清晰统一。


# 9. 继续编译 MITK Workbench 应用

MITK Workbench 是 MITK 的图形用户界面应用(基于 Qt),其编译步骤如下:

# 进入 MITK 主项目目录

打开路径:

D:\MITK-2016.11-superbuild\MITK-build

找到并打开 MITK.sln(不是 superbuild 的 .sln)。

# ⚙️ 配置并编译 Workbench

  1. 打开 Visual Studio,加载 MITK.sln
  2. 设置编译模式为 Release
  3. 右键点击解决方案中的 ALL_BUILD,选择 Build
  4. 编译过程中如果提示缺少模块,请确认 superbuild 已构建所需依赖,并配置正确路径。
  5. 编译成功后,bin 目录下会出现可执行文件 MITKWorkbench.exe

# 10. 运行 MITK Workbench

前往以下目录:

D:\MITK-2016.11-superbuild\MITK-build\bin\Release\

找到并双击运行:

MITKWorkbench.exe

若报错缺少 DLL:

  • 确保 Qt 安装路径的 bin 目录加入了环境变量(或手动将 DLL 拷贝到可执行目录)
  • 确保外部依赖库(如 ITK、VTK)构建无误,路径引用正确
  • 若报错:Could not find QtWebEngineProcess.exe等qt相关的错误,将qt下的EXE文件拷贝到与主程序目录下同级目录,则可以解决问题
  • 若报错:QSqlDatabase: QSQLITE driver not loaded等,需将Qt安装目录下的plugin的sqldrivers目录复制到可执行文件目录下

# 11. 常见问题与解决

问题描述 解决方法
Qt 相关报错或运行时丢失 DLL 确保 Qt 使用 5.7.1,且环境变量设置正确
MSB6006 错误 / 路径过长 确保 build 路径简短,例如 D:\MITK-build
编译 ITK、VTK 失败 检查 superbuild 外部项目日志:ep/ITK*/CMakeFiles

# 总结

MITK 2016.11 的 superbuild 机制为初学者和开发者提供了清晰的依赖管理流程,只要:

  1. 使用合适版本(Qt 5.7.1、MSVC 2017)
  2. 遵循 superbuild → MITK-build 的编译顺序
  3. 适当调整路径与环境变量配置

即可顺利完成编译,并运行 MITK Workbench。对于需要扩展模块或定制构建流程的开发者,也可以借助 EXTERNAL_* 变量灵活集成已有库,极大提高效率。