MITK Windows 平台编译 MITK v2021.10

时间:2021-04-12 01:14:50


描述:

有些旧了,不过还是有很多值得学习的地方;

一、编译前的工作:

1.编译环境:

平台:windows 10

2、下载地址:

https://github.com/MITK/MITK/releases

我选择的是

https://github.com/MITK/MITK/archive/refs/tags/v2021.10.zip

3.需要先安装好以下软件:VS2017 ,Qt5.12.4 , CMake 3.10.3, Git

4.时间,大概 3个小时左右,和下载速度 和遇到的问题多少有关系;

注意:

QT安装时,可以不选source; 选中其它,以免后面,编译时,报错找不到;

MITK Windows 平台编译 MITK v2021.10

. cmake编译mitk-superbuild

1. 解压MITK源码后使用Cmake打开

建议源码路径和build路径不要过长且不要包含中文,否则可能出错。点击 configure时选择vs2017 win64,此处编译一般速度较快,若卡住不动,说明编译异常,此时需要重新使用Cmake打开,直至第一步configure完成。再generate即可。

注意:如遇到找不到Qt-Dir

选择类似

MITK Windows 平台编译 MITK v2021.10

三.编译 mitk-superbuild.sln工程

1.使用管理员模式 运行VS  

然后打开编译后的 mitk-superbuild.sln,右击 ALL_Build ,选择 生成;

会自动下载安装相应库及软件

2.如网络下载慢

使用vs2017打开mitk-superbuild.sln进行编译,编译时会通过网络下载依赖库压缩包文件,如果网速较慢可在编译前直接将多个压缩包文件拷贝至X:\XXXX\MITK_build\ep\src再进行编译(压缩包文件找其他同事拷贝),此时就不需要再通过网络下载。

注意:首次编译过程中将出现多处报错属于正常现象,可参考以下教程部分一一解决:

若网络不好,可能会提示下载mitk_data失败,而且不能像上面的方法一样先下载下来再放在某个特定的文件夹里,这时可以先忽略这个错误,成功生成mitk_build.sln之后,即可打开编译。如果mitk_data 下载不成功的话,也可以先暂时搁置,不影响后面mitk.sln的编译。

3.patch 文件 换行符号问题

 报错 类似 Assertion failed: hunk, file ../patch-2.5.9-src/patch.c, line 354

是因为 类似 Engine-patch 文件换行符号问题;

在各个系统中,编辑文件生成的换行符,其实是不一样的:

Unix/Linux 系统中:每行结尾只有 "<换行>",即 "\n";

Windows/Dos 系统中:每行结尾是 "<回车><换行>",即 "\r\n";

Mac 系统中:每行结尾是 "<回车>",即 "\r"。

这个时候,如果我们使用的是跨平台的开源库,就很容易碰到这样的问题,因为保不齐某些构建、编译文件就是在Linux下编写的,而我们如果在Windows平台上构建编译,就会无法识别或者报错
 

解决方案:

可 下载 Notepad++  显示换行符,视图 -> 显示符号 -> 显示行尾符,如果是英文版的 Notepad++,则应该是 View -> Show Symbol -> Show End of Line。Windows系统中,我们就可以在文档行尾看到CR、LF等标识。

如图:

MITK Windows 平台编译 MITK v2021.10

 打开源码 下文件夹,例: E:\source\MITK-2021.10\CMakeExternals

CMakeExternals 文件夹下 带 .patch 文件, 使用Notepad++  编辑->文档格式转换->转为 Windows(CR LR) 保存;

也可使用 UltraEdit 有类似工具

转换后 :

MITK Windows 平台编译 MITK v2021.10

4.文件格式问题

编译的过程中还会出现多处文件编码格式相关的报错,这时将错误信息中提到的文件改变一下编码格式即可,

例:

warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

D:\MITK\build\MITK-build\Modules\DICOMTesting\DumpDICOMMitkImage.vcxproj”(默认目标)

(1 选取相关文件,点击:文件->高级保存选项->Unicode PageCode 1200

(2 如果文件菜单中没有高级保存选项,点击:工具->自定义->命令->添加命令->文件->高级保存选项

MITK Windows 平台编译 MITK v2021.10

 

MITK Windows 平台编译 MITK v2021.10

(3 或者可以按如下处理:

如下图,点击该项目属性,将 "警告视为错误" 这一项 改为"否"

MITK Windows 平台编译 MITK v2021.10

5.注意输出编译日志

如在日志发现类似以下:

The following features have been disabled:

18> * MitkRigidRegistrationUI, (missing dependencies: Qt5|Widgets+OpenGL+Core)
18> * MitkOpenCVVideoSupport, (missing dependencies: OpenCV)

如果这两个模块你又需要,原因很明显是,CMakeLists.txt,少依赖(这个错是我编译早期一个版本发现的错误)

解决方案:

打开源码,找到相应 module ,例:E:\MITK-2016.11\Modules\RigidRegistrationUI

打开 CMakeLists.txt 文件 

MITK_CREATE_MODULE(
  SUBPROJECTS MITK-Registration
  INCLUDE_DIRS RigidRegistrationMetrics RigidRegistrationOptimizer RigidRegistrationTransforms
  DEPENDS MitkQtWidgets MitkRigidRegistration
  PACKAGE_DEPENDS Qt5|Widgets+OpenGL+Core CTK|CTKWidgets
)

添加 PACKAGE_DEPENDS Qt5|Widgets+OpenGL+Core CTK|CTKWidgets

.cmake编译MITK-Build

MITK Windows 平台编译 MITK v2021.10

编译完成之后,再次打开Cmake,此时路径选择

“configure”一下这个工程,然后依次“generate->open Project->ALL_build”,也就是build MITK.sln (F:\mitkbuild\MITK-build)。

在生成之前,首先注意是debug还是release,要与上面编译的mitk-superbuild保持一致。

五.编译 MITK.sln工程

打开 build/MITK-build 目录中的 MITK.sln

右击 ALL_Build ,选择 生成;

注意:在生成之前,首先注意是debug还是release,要与上面编译的mitk-superbuild保持一致,然后直接开始编译,编译成功之后选择mitkWorkBench作为启动项,运行一下该工程,出现workBench 的UI界面证明MITK编译成功。

最后注意:

VS 运行环境,还需要安装 VisualC++AIOv2019.05.21-C++文档类资源

更新日期:2022.01. 9