编译前准备
- CMake:版本>=3.16.3(避免使用3.21.0,3.25.0-3.25.2,这些版本,可能会出现build错误)。
- Git:版本>=1.7.10,安装完git,一定要在cmd里面试一试,是否能执行git命令;如果不能,则需要设置环境变量,因为cmake过程中,会用到git相关的exe文件。
- Visual Studio:理论上任何版本都行,编译时,选择对应的版本就行。
- Qt5:Qt版本要选择5.15.2,MSVC2019 64-bit、Qt WebEngine这两个组件,在安装Qt时,是必须选择安装的。
Configure命令
cmake.exe -G "Visual Studio 16 2019" -A x64 -DQt5_DIR:PATH=C:/Qt/5.15.2/msvc2019_64/lib/cmake/Qt5 -S E:\Slicer\Slicer -B E:\Slicer\Slicer-Release
Build命令
debug模式
"C:\Program Files\CMake\bin\cmake.exe" --build D:\Slicer\Slicer-Build --config Debug
release模式
"C:\Program Files\CMake\bin\cmake.exe" --build D:\Slicer\Slicer-Build --config Release
build中遇到的问题
1、vs版本选择错误,根据下面的提示,结合自己实际的vs版本,在以上configure命令中填入合适的Generators命令
2、以下错误提示,是因为网络问题,可以开启科学上网(规则模式可能不行,需要全局模式),因为有些必要资源是需要翻墙下载的
3、命令行release模式build时,可能会出现以下错误:
这个因为cmake默认CMAKE_CONFIGURATION_TYPES这个设置是四个build模式
CMAKE_CONFIGURATION_TYPES : Debug;Release;MinSizeRel;RelWithDebInfo
只需要打开cmake-gui,将这个设置改为
CMAKE_CONFIGURATION_TYPES : Release
再使用命令行build,就能解决该错误了
参考链接:https://discourse.slicer.org/t/when-building-custom-template-in-release-mode-getting-error/22488
4、解决参考链接:https://blog.csdn.net/XUNAYUANSHENG/article/details/136597357
5、可能因为科学上网导致存在网络代理的原因,关闭科学上网就可以了,解决参考链接:https://stackoverflow.com/questions/67297278/valueerror-check-hostname-requires-server-hostname,这个错误提示,是直接看的python-setuptools-install-*.log找出来的。
6、删除这三个文件,重新下载,我删除三次左右,才完全没有错误,有时候,可能删除一次没有效果
7、这种错误,就直接自己下载文件,放到对应的文件目录就行,比如下面截图中的目录“E:\Slicer\Slicer-Release\Slicer-build\Modules\CLI\MergeModels\Data\Input”
icer\Slicer-Release\Slicer-build\Modules\CLI\MergeModels\Data\Input”