Win10系統從源碼構建3D Slicer

本文鏈接

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章