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:\D\Support';$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:\D\Support';$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;输入代码:
cd myProjects
git clone git://github.com/Slicer/Slicer.git

我们就把GitHub仓库中Slicer4.7.0的代码复制到了本地。

  • 可以选择设置开发环境(非核心开发人员,不推荐)
鼠标右键Git Bash Here,键入代码:
cd Slicer
./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:\D\Support\qt-4.8.7-64-vs2013-deb\bin\qmake.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

3DSlicer21:Windows7+VisualStudio2013构建3DSlicer史上最详细版(Debug)相关推荐

  1. 史上最详细版Centos6安装详细教程

    镜像CentOS-6.8-x86_64-bin-DVD1.ISO 将下载好的镜像上传到服务器,并选择该镜像(详情请看上篇exsi镜像上传文章) 一.安装开始 开机选择第一项 这里询问我们是否要对光盘进 ...

  2. 手把手教你利用hexo搭建自己的博客网站----史上完整详细版(基于GitHub for mac)

    文章目录 一.安装Node.js 1.1 下载完该安装包,直接进行安装即可. 1.2 打开终端,切换至root用户. 1.3 查看一下node的版本 1.4 查看npm的版本 二.安装hexo 2.1 ...

  3. 史上最详细版!java文件打包成exe,在未配置安装JDK和未配置的电脑上运行--转载...

    原文地址:http://funine.iteye.com/blog/2220359 (本文所有素材将在文章最后附上) 准备工具exe4j, converticon.com(用于制做.ico格式的图片) ...

  4. 软件开发全文档下载(史上最详细版)

    写在前面 在日常项目开发过程中,会产生大量的过程文档,比如开发过程中的文档.管理过程中的文档.产品相关文档等等,那这些文档我们日常怎么去管理呢?怎么去做规划呢?如何做成通用标准呢?小编特地整理了一整套 ...

  5. Java开发环境搭建(windows版、史上最详细版)

    转自:https://blog.csdn.net/runing_it_man/article/details/77800639 Java开发环境搭建 在本章节中我们将为大家介绍如何搭建Java开发环境 ...

  6. NX/UG二次开发环境配置方法—史上最详细版(以NX11.0和Visual Studio 2017为例)

    一.前言 本人之前在用NX12.0以及Visual Studio 2017进行NX二次开发时,进行过开发环境的配置,当时也遇到了一点问题,好在最后解决了.最近由于项目需求,我卸载了NX12.0,重装了 ...

  7. 史上最详细唇语识别数据集综述

    更新:VIPL官网网页格式更改,导致旧的LRW1000链接无法访问,现已更新LRW1000数据集链接,内部包含申请需要的文件 推荐一个大佬的综述,关于实现唇语识别的多种途径. 说明:本文包括经常用语唇 ...

  8. 史上最详细Lipreading using Temporal Convolutional Networks(MS-TCN)代码层面详解

    本文将从代码层面详细介绍在LRW数据集实现SOTA效果的唇语识别模型MS-TCN.GitHub代码请看Lipreading using Temporal Convolutional Networks, ...

  9. android项目实战博学谷源码_Vue框架:史上最详细的Vue实战项目之喵喵电影(视频+源码)...

    Vue是web前端中重要的框架之一,与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计,Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合.所以,对于web前端开 ...

最新文章

  1. Android Studio窗口组成
  2. 取得数组中的随机数random.nextInt(index)
  3. php 动态多维数组长度,怎么在php中利用count获取多维数组的长度
  4. 导入数据库怎么导入_导入必要的库
  5. SPI单片机发送ARM接收
  6. jdbc mysql myeclipse_关于JDBC连接MySQL的问题,我一直解决不了(Myeclipse 环境下)
  7. SQL Alias(别名)
  8. 安卓bmi项目_搭载安卓系统的智能健康一体机:上禾SH-V20
  9. 笔记本html外接显示器,笔记本如何外接显示器
  10. 360手机助手下载|360手机助手下载
  11. html编辑器菜鸟工具,富文本编辑器TinyMCE菜鸟使用教程
  12. 面向对象:兜兜转转了很久,希望你恰好也在
  13. 宝塔面板linux账号密码忘记,宝塔面板忘记账号或密码的解决办法
  14. table文字超出显示省略号
  15. 【抽象代数】环、子环、理想、商环、环的同态
  16. 当用post方法上传,base64编码的图片太大,导致后台接收的时候总是为null?
  17. Home Assistant设备追踪之ping检测和nmap检测
  18. python爬取动态加载的网页之爬取猫眼电影实时票房
  19. Fildder拦截请求并修改请求参数
  20. MediaCodec解码AAC音频,用AudioTrack播放解码后的数据

热门文章

  1. 使用NPOI解析excel内容导入postgres数据库
  2. Black Hat 2008 观察第一天
  3. 掌控板连网与手机通信
  4. linux防火墙策略配置、查看操作实例
  5. 开车的人千金难买的知识
  6. 华为云安装docker遇到的坑
  7. 7-7 顺序 - wifi密码 (100 分)
  8. 全连接层与卷积层(总结)
  9. 阿贝尔分部求和法与分部积分
  10. 高手教程——MF的技巧