最近实验室需要安装德国版MITK,前后花了一个多周,弄残了一台电脑,总算看到startMitkWorkbench_debug.bat运行成功,向前辈们学习把安装过程和遇到的问题以及解决方法跟大家分享一下,也当做这一个周工作的记录。在这过程中无数前辈的博客起到了很重要的作用,就不一一致谢了,我们尽量吸收每一个链接的知识就是对他们的尊重。
初学者的话,往往一个很小的操作就需要查找很久,所以在本篇博客里,过程描述尽量细致。
1.Windows 7 X64
2.VS2017_enterprise X64[^1]: vs2017_enterprise安装与破解
3.Qt5.9.6
4.cmake-3.12.1-win64
5.MITK-2016.11官网源码:http://mitk.org/wiki/Downloads
6.MD5校验工具
1.B站up主有MITK安装的视频资源:MITK安装的视频资源:https://www.bilibili.com/video/av30477445 可以做参考,与本文还是有不少区别。
2.在MITK-2016.11官网源码网站,Support Platforms里说Microsoft Windows 7 (x64) 需要 MSVC 2013 Community Update 5 但是由于我已经有VS2017,因此就用了VS2017,结果证明也可以。如果您预先没有VS,建议还是按照官方推荐。
3.下面正式开始部分会讲到VS2017安装—Qt安装—VS2017-Qt插件安装—cmake安装—MITK安装编译,可以跳到感兴趣部分。
4.上面从VS到MITK一套弄好需要大概24G存储。
从vs2017_enterprise安装与破解里下载,安装时选择需要的VS组件,否则内存很大。安好后用上面链接的注册码破解。
1.从Qt5.9.6下载qt-opensource-windows-x86-5.9.6.exe。
2.安装qt-opensource-windows-x86-5.9.6.exe时,除了默认组件外,勾选msvc 2017 64bit,另外要勾选上以下两个组件:QtWebEngine和QtScript功MITK编译用,不然会返工的。
以前的VS会提供单独的插件软件,VS2017按照VS2017专业版使用最新版Qt5.9.2教程(最新教材)里面来操作,插件安装的话,做好其中的第2步,第3步就行了。
这个比较简单,版本高一点一直双击安装就行,比如3.12.1,从cmake软件下载找到cmake-3.12.4-win64-x64.zip下好,安装就行。不要下成了源码哦。
MITK-2016.11官网源码:http://mitk.org/wiki/Downloads
1.从cmake安装目录—bin—cmake-gui.exe打开cmake
2.配置项目:
源码解压放在红字src处,自己新建文件夹放在红字build处(自己一定要记得是什么文件夹,可以参考图中E:\MITK-2016.11-build),放好之后,点红框1configure,选Visual Studio 15 2017 Win64编译器,确认,会有一大片红的区域,建议勾选上黑框MITK_Build_Examples这样编译MITK会生成例子,再点configure,如果再有红的,放好对应的Qt位置,这时前面安装Qt特别提到的两个组件起作用了(一般有的话会跟其他一样自动填上去,没有就返工咯),再Configure,直到没有红的configure done,再点红框2Generate等待generate done,再点Open Project,会自动打开VS,至此cmake的工作完成了。
时间会比较久,主要有两部分:下载依赖包的时间,编译的时间。前者时间可以节约,后者就等吧。
如果不想节约下载依赖包时间就,All-build右键生成,等吧。
想节约,就看节约下载依赖包的时间,弄好后,All-build右键生成。
去E:\MITK-2016.11-build(如果你的不同相应更改)—ep—src内找到应该下载的包(那些.tar.gz压缩包就是,如果没有,你就先在VS里All-build右键生成),MITK-2016.11是固定的,如果需要可以联系我。压缩包下载网址:http://www.mitk.org/download/thirdparty/
这里需要注意的有:
1.mitk-data在默认代码是不管怎样,都会重新下的,当然可以改,需要可以联系我。改的方法:去E:\MITK-2016.11-build\ep\src\MITK-Data-stamp找download-MITK-Data.cmake打开,设置为MD5验证(参考其他包的文件),并设置MD5码。这个码来自MD5校验工具,拖动你的完整的mitk-data文件进去就行了。
2.代码会自动验证压缩包是否完整(MD5码验证),如果不完整会自动重新下载。
文件编码格式的问题,编码从UTF-8/ANSI改到Unicode就好了。B站视频25min24s有说:https://www.bilibili.com/video/av30477445,
下面链接也有:https://blog.csdn.net/JoyPoint/article/details/76460702
我的改了三个文件:
alt_sstream_impl.hpp,
mitkDiffusionHeaderSiemensDICOMFileHelper.cpp,
mitkSlicedGeometry3D.cpp
看VS的“错误列表”,再看“输出”,发现是ctkMacroSetupQt.cmake的问题,其实从http://www.mitk.org/download/thirdparty/自动下载的CTK_9440d3c9代码是有问题的。经MITK-ProjectTemplate编译错误MSB6006、MSB1009解决办法提醒,用了CTK_3050b649.tar.gz,然后运行产生了1600+错误:
错误 C2143 语法错误: 缺少“;”(在“<”的前面) [E:\MITK-2016.11-build\ep\src\CTK-build\CTK-build\Libs\CommandLineModules\Core\CTKCommandLineModulesCore.vcxproj] [E:\MITK-2016.11-build\ep\src\CTK-build\CTK.vcxproj] CTK e:\mitk-2016.11-build\ep\src\ctk\libs\commandlinemodules\core\ctkcmdlinemodulefutureinterface.h 99
错误 C2039 “ResultStore”: 不是“QtPrivate”的成员 [E:\MITK-2016.11-build\ep\src\CTK-build\CTK-build\Libs\CommandLineModules\Core\CTKCommandLineModulesCore.vcxproj] [E:\MITK-2016.11-build\ep\src\CTK-build\CTK.vcxproj] CTK e:\mitk-2016.11-build\ep\src\ctk\libs\commandlinemodules\core\ctkcmdlinemodulefutureinterface.h 97
错误 C2143 语法错误: 缺少“;”(在“<”的前面) [E:\MITK-2016.11-build\ep\src\CTK-build\CTK-build\Libs\CommandLineModules\Core\CTKCommandLineModulesCore.vcxproj] [E:\MITK-2016.11-build\ep\src\CTK-build\CTK.vcxproj] CTK e:\mitk-2016.11-build\ep\src\ctk\libs\commandlinemodules\core\ctkcmdlinemodulefutureinterface.h 97
…省略一千多条…
这个不要怕,去E:\MITK-2016.11-build\ep\src\CTK-build\CTK.sln单独打开,编译,然后可能还有一个不成功,这个不影响。继续去E:\MITK-2016.11-build\MITK-superbuild.sln打开,继续MITK-build,注意,如果MITK-configure不成功,又会出错,是提示没有项目。
“错误列表”里找到这句话,判断是FibertrackingLUT.tar.gz没下完的锅,下好放进相应路径,果然就成功了
1>for file: [E:/MITK-2016.11-build/MITK-build/Modules/DiffusionImaging/FiberTracking/FibertrackingLUT.tar.gz]
1> expected hash: [38ecb6d4a826c9ebb0f4965eb9aeee44]
1> actual hash: [b83e9c7521832c3de92eae88dc267ac8]
1> status: [28;“Timeout was reached”]
1>
很明显的就是所有项目生成成功,还可以点
E:\MITK-2016.11-build\MITK-build\bin\startMitkWorkbench_debug.bat
有下面这个就好了呢: