Win10系统从源码构建3D Slicer
程序员文章站
2024-03-24 11:42:22
...
本文链接
https://blog.csdn.net/fengtaoO08/article/details/101487421
1 前言
本文将在Win10系统上对3D Slicer(版本4.11.0 -2019-09-01) 源码进行构建,得到可执行文件。主要流程参考官方构建指南,部分细节有出入,仅供读者参考。
2 系统环境及预装软件
- OS:Windows 10 x64
- 预留足够磁盘空间(Debug版本至少需要预留45GB,Release版本至少预留10GB)
- 保持网络通畅
- CMake v3.14.4
- Git v2.19.1
- Qt v5.12.2 (需安装
Qt Script
和Qt Webengine
组件) - Visual Studio Community 2019 v16.2.4 (安装
使用C++的桌面开发
工作负载,以及MSVC v140 -VS 2015 C++生成工具(v14.00)
组件)
3 Slicer源码的获取与安装
在准备安装Slicer的目录(该路径不能包含空格及汉字)下通过Git Bash命令行运行以下命令
git clone git://github.com/Slicer/Slicer.git
然后Slicer
文件夹将自动创建到当前目录。等待clone完成后,在过Git Bash命令行运行以下命令
cd Slicer
./Utilities/SetupForDevelopment.sh
4 配置与生成Slicer解决方案文件
从Windows开始菜单运行CMake (cmake-gui)
4.1 填写路径
- 在
Where is the source code
对应处填写Slicer源码安装路径,或点击Browse Source...
进行选择 - 在
Where to build the binaries
对应处填写构建路径(需保证构建路径总长度不超过10个字符,且不包含空格及汉字,例如C:\D\S4R
),或点击Browse Source...
进行选择。注意,每次进行构建都应选择不同的路径,以避免混淆。
4.2 CMake变量
- 点击
Add Entry
按钮添加CMake变量:Name为Qt5_DIR
,Type为PATH
,Value为Qt5安装目录的一个路径,如C:\Qt\5.12.2\msvc2017_64\lib\cmake\Qt5
,请查看Qt5安装目录并替换为你自己的路径。 - (可选)以下是可以根据需求添加并配置的CMake变量及其说明:
-
SlicerApp_APPLICATION_NAME
: Custom application name to be used, instead of default “Slicer”. The name is used in installation package name, window title bar, etc. -
Slicer_DISCLAIMER_AT_STARTUP
: String that is displayed to the user after first startup of Slicer after installation (disclaimer, welcome message, etc). -
Slicer_DEFAULT_HOME_MODULE
: Module name that is activated automatically on application start. -
Slicer_DEFAULT_FAVORITE_MODULES
: Modules that will be added to the toolbar by default for easy access. List contains module names, separated by space character. -
Slicer_CLIMODULES_DISABLED
: Built-in CLI modules that will be removed from the application. List contains module names, separated by semicolon character. -
Slicer_QTLOADABLEMODULES_DISABLED
: Built-in Qt loadable modules that will be removed from the application. List contains module names, separated by semicolon character. -
Slicer_QTSCRIPTEDMODULES_DISABLED
: Built-in scripted loadable modules that will be removed from the application. List contains module names, separated by semicolon character. -
Slicer_USE_PYTHONQT_WITH_OPENSSL
: enable/disable building the application with SSL support (ON/OFF) -
Slicer_USE_SimpleITK
: enable/disable SimpleITK support (ON/OFF) -
Slicer_BUILD_SimpleFilters
: enable/disable building SimpleFilters. Requires SimpleITK. (ON/OFF) -
Slicer_BUILD_EMSegment
: enable/disable building EM segmenter (ON/OFF) -
Slicer_USE_PYTHONQT_WITH_TCL
: TCL support (ON/OFF) -
Slicer_EXTENSION_SOURCE_DIRS
: Defines additional extensions that will be included in the application package as built-in modules. Full paths of extension source directories has to be specified, separated by semicolons.
-
4.3 配置
- 点击
Configure
按钮 - 在弹出的窗口中的
Specify the generator for this project
下拉菜单中选择Visual Studio 16 2019
- 在
Optional platform for generator
下拉菜单中选择x64
- 在
Optional toolset to use (argument to -T)
编辑框中输入v140
- 点击
Finish
按钮,则CMake开始配置 - 若出现下面错误表示未连接网络或网络不通畅,保持网络通畅后重新点击
Configure
按钮即可解决。
CMake Error at CMake/SlicerCheckCMakeHTTPS.cmake:25 (message):
error: This CMake does not support the HTTPS protocol. Ensure that CMake is compiled with CMAKE_USE_OPENSSL enabled.
Call Stack (most recent call first):
CMake/SlicerCheckCMakeHTTPS.cmake:35 (slicer_check_cmake_https)
SuperBuild.cmake:25 (include)
CMakeLists.txt:675 (include)
4.3 生成解决方案文件
- CMake显示
Configuring done
之后点击Generate
按钮,则CMake开始生成解决方案文件
4.4 构建
- CMake显示
Generating done
之后,点击Open Project
按钮则会在Visual Studio 2019中打开生成的解决方案项目 - 此时VS会弹出一个重定向项目的对话框,点击
取消
- 于VS顶部的工具栏中,找到
解决方案配置
下拉菜单,选择编译Debug
版本还是Release
版本 - 点击VS顶部菜单栏
生成
按钮,在下拉菜单中选择生成解决方案
,则VS开始进行构建 - 在构建过程中VS会不断从网络上下载各种资源文件,因此请保持网络通畅(由于资源服务器往往不在国内,因此速度仍然可能很慢,甚至下载失败)。在网络通畅的情况下,也仍然需要构建若干个小时。若发现某个项目构建失败,应查看VS输出的日志,查找失败原因。通常来说,项目构建的失败大部分都是由于某些资源下载意外终止导致,解决方法就是重新为失败的项目生成解决方案。
- 最终如果所有项目生成解决方案完成,VS输出窗口显示生成失败0个,则代表构建成功。
5 运行Slicer
构建完成后应该可以在构建目录下的Slicer-build
文件夹中找到Slicer.exe
,点击运行即可打开3D Slicer了。官方指南中还包含TEST Slicer
和PACKAGE Slicer
的方法,以及一些在整个流程中可能遇到的错误及解决方法,读者可自行查阅。
上一篇: j2me排序
下一篇: Nehe教程第10课3D世界