本文鏈接
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
的方法,以及一些在整個流程中可能遇到的錯誤及解決方法,讀者可自行查閱。