zoukankan      html  css  js  c++  java
  • 3D Slicer Windows7+VisualStudio2013构建3DSlicer史上最详细版(Debug)

    1.前言

    之前数次在虚拟机上成功编译Slicer,感觉过程挺简单的。由于科研项目需要在Windows7环境下开发,所以研究了一下。考虑到国内对于3DSlicer的需求很高,然后相关参考文献及资料极其匮乏,本系列博客尝试改变这种现状,所有项目及教程均具有可重复性。
    转载标识:Shenziheng/Shenchunxu @Tsinghua Univ.

    2.编译

    2.1 推荐配置

    • 轻松下载部分
    Windows7 64bit、VisualStudio2013(with Update 5)、Git最新版(current=2.14.1)
    Cmake-3.7.1推荐、SVN(推荐SlikSvn)
    Notice1:强烈推荐使用64bit操作系统;
    Notice2:强烈推荐VS2013兼有Update5更新,否则报错,参考:
    https://github.com/Slicer/Slicer/commit/71602609ce2ae5e473ece392500825ca96213371
    Notice3:强烈推荐使用SlikSvn(svn就是一个版本控制器,方便我们管理开源代码)。如果有强烈的意愿使用TortoiseSVN (versions that support command line tools),那你要确保你安装了命令行工具,默认情况下,命令行工具功能是Disable关闭的。
    • 着重下载部分
    3D Slicer4.7.0:这个不用我们单独下载,下面采用Git下载最新版本;
    qt-4.8.7with SSL support:官方推荐自主编译,最一点最容易出错,后面最主要介绍的就是他!

    2.2 qt-4.8.7-with SSL编译

    目前官方推荐的qt-4.8.7-with SSL编译方法如下:
    Step1:qt-4.8.7-OpenSSL GitHub文件包
    Step2:执行快速编译指令(VS2013->VS2013 x64本机命令提示),执行下述命令:
    VS2013 Debug 版本:
    @powershell -Command "$destDir='C:DSupport';$buildType='Debug';$qtPlatform='win32-msvc2013';$bits='64';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/jcfr/qt-easy-build/4.8.7/windows_build_qt.ps1'))"
    VS2013 Release版本:
    @powershell -Command "$destDir='C:DSupport';$buildType='Release';$qtPlatform='win32-msvc2013';$bits='64';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/jcfr/qt-easy-build/4.8.7/windows_build_qt.ps1'))"
    Notice:作者的 qt-everywhere-opensource-src-4.8.7.zip源代码存在错误的地方,必须进行修改,否则会导致QT在线编译一次又一次出错。
    本文提倡的编译方式如下:
    step1:在VS2013 x64本机工具命令提示中运行如上Debug版本代码,密切关注屏幕!!!当出现qt-everywhere-opensource-src-4.8.7.zip DownLoad 100%时,按下Ctrl+C组合件,强行停止命令行继续执行。
    step2:打开文件目录C:/D/Support,你会看到everywhere-opensource-src-4.8.7.zip压缩包如下:
    step3:修改代码,进入文件目录...qt-everywhere-opensource-src-4.8.7.zip/qt-everywhere-opensource-src-4.8.7/src/3rdparty/webkit/Source/WebCore/platform 打开文件DefaultLocalizatiaoStrategy.c定位327行看到:
    Notice:此处存在两个中文符号“”,是他们导致了qt在线编译的失败,我们需要把它们改成英文的"";
    step4:在VS2013 x64本机工具命令提示中继续运行如上Debug版本代码,时间挺长,最后可以看到编译成功提示如下:

    2.3 生成Slicer4.7.0平台适应性解决方案

    • 利用Git工具下载Slicer4.7.0
    比较方便方法:创建文件夹C:/myProject;
    在该文件中,鼠标右键Git Bash Here;输入代码:
    1 cd myProjects
    2 git clone git://github.com/Slicer/Slicer.git
    我们就把GitHub仓库中Slicer4.7.0的代码复制到了本地。
    • 可以选择设置开发环境(非核心开发人员,不推荐)
    鼠标右键Git Bash Here,键入代码:
    1 cd Slicer
    2 ./Utilities/SetupForDevelopment.sh
    • 使用Cmake生成Slicer源代码生成Slicer.sln
    Notice:接下来生成的文件包占用很大的内存空间(我测试之后为14.2G),所以生成的文件不建议放到C盘,本人放到了D盘。
      
    源目录(Browse Source):C:/myProject/Slicer
    目标目录(Browse Build):D:/Slicer4D (越短越好)
    额外配置属性值(点击Add Entry):
    • Value = QT_QMAKE_EXECUTABLE; FilePath = C:DSupportqt-4.8.7-64-vs2013-debinqmake.exe;
    • Value = Slicer_USE_SimpleITK; BOOL = 空(不勾选)Debug模式下切记此步骤
    然后的点击configure->generate.很快就可以生成。
    Frequent Error1: error: Qt 4.7.4 was not found on your system.You probably need to set the
      QT_QMAKE_EXECUTABLE variable.
    Qt编译错误,或者QT_QMAKE_EXECUTABLE没有设置,或者名字打错了。
    Frequent Error2:CmakeError155,missing:Subversion_SVN_EXECUTABLE。
    用SlikSVN代替TortoiseSVN,或者在Add entity。前者方案更可靠。
    • 在D:/Slicer4D中我们就可以找到CMAKE生成的平台适应的解决方案,Windows下应该为Slicer.sln.

    2.4 编译生成Slicer-4.7.0.exe

    利用Visual Studio 2013 打开Slicer.sln,显示如下:
     
    一般会有53各项目,选择ALL_BUILD,右键单击生成,此时情况下拼得就是网速了,因为该过程需要在线下载Python、vtk、ITK等工具包,编译时间很大程度上取决于网速了。
    一般该过程很难出错,如果出错重启计算机,再试一次。
    编译之后,我们便得到一大批XXXXX-build文件夹,其中最重要的是Slicer-build。因为里面有运行程序slicer.exe以及断点调试程序SlicerApp-real.exe(Slicer.sln debug 模式下),下面会详细讲。具体如下:
    有了这两个文件,我们就能单步调试Slicer源码,以及我们的代码。

    3.Debug与单步调试

    Notice:对于VS2013用户,请严格遵循下面方式开启IDE,否则你将遇到一大批***.dll不存在、Memory LEAKs、ImportERROR...
    • 在cmd.exe中运行Slicer.exe --VisualStudio,启动VisualStudio。
    • 在VisualStudio3013中打开文件...Slicer-build/Slicer.sln 
    • 设置SlicerApp为项目启动项(右键点击SlicerApp项目,选择设置项目启动项)
    • 调试(Debug Menu)->启动调试(Start Debug,F5),出现了我们期待已久的界面:
     

    4.参考资料

    [1]https://www.slicer.org/wiki/Documentation/Nightly/Developers/Tutorials/Debug_Instructions#Windows
    [2]https://www.slicer.org/wiki/Documentation/Nightly/Developers/Tutorials/Debug_Instructions#Windows
  • 相关阅读:
    Word操作——通配符
    圆的拟合
    最优化案例整理
    机器学习数学基础知识备忘
    scikit-learn学习笔记
    Linux下安装scikit-learn
    ROS学习备忘
    [ROS]激光驱动安装
    CMake和Linux编程:find_package的使用
    [OpenCV]直线拟合
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14235550.html
Copyright © 2011-2022 走看看