1. 编译环境
Visual Studio | 2017 |
---|---|
python | 3.8.2 |
QT | 5.14.2 |
CMake | 3.24.2 |
OpenCL | 2020.3.494 |
hdf5 | 1.10.6 |
curl | 7.77 |
VTK | 6.3.0 |
OpenCV | 3.4.14 |
ITK | 4.12.2 |
ITK-SNAP | 3.8 |
以上,Visual Studio、python、QT、CMake、OpenCL、hdf5这几个软件正常安装即可。
新建卷,建立curl、VTK、OpenCV、ITK、snap文件夹(若不新建卷,ITK-SNAP生成解决方案时可能会因文件路径过长失败),并且个文件夹下分别创建build、prefix子文件夹,以curl为例,其子文件夹分别为build、prefix以及curl源码文件夹,如图2所示。
2. CURL
首先在cmake中,source conde填源码目录,build the binaries填build目录
点击configure,选择vs2017,X64(64位电脑选择),如图4。
第一次configure结束之后会出现大片红色,完成以下步骤
修改CAMKE_INSTALL_PREFIX 为curl的prefix文件夹
再次configure,直到没有红色出现。
configure done之后点击generate。
generate done之后点击open project。
在vs中右键all_build生成,之后右键install生成。
3. VTK
总体步骤同上,需注意在cmake中
修改CAMKE_INSTALL_PREFIX 为vtk的prefix文件夹
勾选VTK_Group_Qt
勾选Module_vtkGUISupportQt
修改Qt-Version为5
4. OpenCV
总体步骤同上,需注意在cmake中
修改CAMKE_INSTALL_PREFIX 为OpenCV的prefix文件夹
补充VTK_DIR为VTK的build文件夹
取消勾选OpenCV_viz
5. ITK
总体步骤同上,需注意在cmake中
修改CAMKE_INSTALL_PREFIX 为ITK的prefix文件夹
勾选Module_MorphologicalContourInterpolation
勾选ITKVtkGlue
勾选ITKVideoBridgeOpenCV
勾选ITKOpenJPEG
补充OpenCV_DIR为OpenCV的build文件夹
补充VTK_DIR为VTK的build文件夹
6. ITK-SNAP
总体步骤同上,需注意在cmake中
修改CAMKE_INSTALL_PREFIX 为ITK-SNAP的prefix文件夹
补充ITK_DIR为ITK的build文件夹
补充CURL_DIR为curl的build文件夹
补充CURL_INCLUDE_DIR为curl的源码下的incluude文件夹(如:D:/curl/curl/include)
补充CURL_LIBRARY_DEBUG为curl的build下libcurl-d_imp.lib文件的路径 (如:D:/curl/build/lib/Debug/libcurl-d_imp.lib)
generate done之后
以管理员身份打开VS,打开ITK-SNAPbuild文件夹下的SNAP.sln文件,右键all_build生成,之后右键install生成。
生成成功之后将Opencv、itk、vtk、curl ,build\Debug\bin目录下的 dll 拷贝到 ITK-SNAP的build\Debug目录下
右键将ITK-SNAP设为启动项,运行。
7. 常见错误
7.1 cmake中confgure时,没有提示补充VTK_DIR等,未出现需要勾选的项及需要取消勾选的项
出现此问题时,尝试多configure几次,检查前面所有的步骤是否有问题。
7.2 configure VTK 提示 WebKitWidgets_DIR not found
qt5的5.5之后,qt移除了Qtwebkitwidgets,并用webenginewidgets替代,所以如果提示没有找到这个文件夹,需要自己去下载Qtwebkitwidgets模块并放到该文件夹里,再手动配置该参数。
下载源:https://github.com/qtwebkit/qtwebkit/releases/tag/qtwebkit-5.212.0-alpha4
若后续还有报错,则按照提示,补充文件。
7.3 VTK生成时报错 MSB6006:”cmd.exe” exited with code 1
参考:VTK编译问题记录:error MSB6006:”cmd.exe” exited with code 1.
7.4 ITK-SNAP生成时,报错 MSB6003,指定的任务可执行文件“rc.exe”未能运行,文件名或扩展名太长
解决方法:新建卷,文件夹名称改短,重新configure,generate,生成curl,OpenCV,VTK,ITK,ITK-SNAP,没有出现此问题。
7.5 ITK-SNAP生成时,报错MSB3073 命令“setlocal”
解决方法:权限问题,以管理员身份运行VS,打开SNAP.sln文件,再次生成即可。
7.6 运行ITK-SNAP报错,缺少ddl文件
解决方法:在新加卷中全局搜索该ddl文件,将其拷贝到 itk-snap-build\Debug 目录下,重新运行ITK-SNAP即可。
若未搜索到该ddl文件,则是curl,OpenCV,VTK,ITK,ITK-SNAP某个build环节中出现错误,建议从头排查一遍。
8. 参考博客
以下为笔者buidl ITK-SNAP3.8时,主要参考的博客
Build ITK-SNAP4.0 Windows系统下源码编译
ITK-0001 ITK-SNAP 3.8.0 编译
Cmake编译itk_snap