使用源码编译3D Slicer3的一些注意事项
2014-07-07 16:01
288 查看
3D Slicer是一款开源的用于医学图像分析(主要是分割和配准)与可视化成像的软件,可以将自己的插件加入到3D Slicer软件中来实现我们想要的功能,是一个检测算法与改进算法的平台。
最近花了一些时间进行了3D Slicer3的编译工作,最新版本是Slicer4,但最近版本对很多模块进行了重构,所以因为一些原因选择了旧的版本(其实编译过程是相似的)。
整体的编译过程网上有几位博主做了总结,我只说下我的实际过程中遇到的问题。
在编译过程中,最为艰难的是通过CMake的配置生成工程文件,我是使用了VS2008的编译环境,实践发现最好还是放弃VS2010吧,兼容性太差,会出现莫名其妙的错误。
网上几篇相关博客都做了相互之间直接的参考,详细过程不再赘述,我这里只介绍一些他们同时忽略的问题。
1、编译过程是在CMake中先配置好其他引用的函数库,再生出工程,但网上大部分理解为在实际编译过程中在线下载,我实践的结果是,这样做不可谓不行,但实在是太慢了。官网中其实给出了需要引用的开源库目录,在http://viewvc.slicer.org/viewvc.cgi/Slicer3/中列出,但没有提供下载,这里我找到了另一个SVN的可下载地址:http://www.na-mic.org/svn/Slicer3/trunk/Libs/。
其中包含了除Qt以及VTK之外的各种相关文件,包括:
FreeSurfer/
IGT/
ITKCommandIO/
MGHImageIO/
MRML/
Qdec/
tclap/
vtkITK/
vtkTeem/
等.....
除此之外,实际编译中,我还发现需要下列开源库:
Curl: 在命令行方式下工作的开源文件传输工具
Slicerlibcurl:引用Curl库针对Slicer进行的扩展
Freetype: 完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件
KWWidgets
2.其中,TCL/TK在Windows平台的编译需要费些功夫,如果不成功的话,可以直接去网上下载已经编译好的。
3.实际编译过程中,由于使用的VTK版本问题,会出现不兼容的问题,具体找到函数我推测是新的VTK版本对数据结构进行了改变,导致旧版本无法通过编译,我的解决办法是不可取的:使用类似的函数,忽略掉这个错误,主要是错误发生初始化的步骤上,个人感觉应该不影响。有时间的话,应该试一下旧的VTK版本,估计Slicer4不会出现这个问题。
4.正因为之前我自己编译了其他完整的引用库文件,所以不用在编译Slicer时进行下载工作,网上的说法是这个过程中会下载大量的文件,这里我就忽略了,但是出现的问题是使用CMake时会检测SVN的地址,所以这里需要将CMakeLists.txt文件中的SVN段注释掉。
此外,文件中Git段也需要注释掉。
5.小的注意点是,需要特别注意自己VS2008环境的版本,是否是64位版本,在CMake时需要进行选择,不匹配的话会出现一些奇怪的错误。
最近花了一些时间进行了3D Slicer3的编译工作,最新版本是Slicer4,但最近版本对很多模块进行了重构,所以因为一些原因选择了旧的版本(其实编译过程是相似的)。
整体的编译过程网上有几位博主做了总结,我只说下我的实际过程中遇到的问题。
在编译过程中,最为艰难的是通过CMake的配置生成工程文件,我是使用了VS2008的编译环境,实践发现最好还是放弃VS2010吧,兼容性太差,会出现莫名其妙的错误。
网上几篇相关博客都做了相互之间直接的参考,详细过程不再赘述,我这里只介绍一些他们同时忽略的问题。
1、编译过程是在CMake中先配置好其他引用的函数库,再生出工程,但网上大部分理解为在实际编译过程中在线下载,我实践的结果是,这样做不可谓不行,但实在是太慢了。官网中其实给出了需要引用的开源库目录,在http://viewvc.slicer.org/viewvc.cgi/Slicer3/中列出,但没有提供下载,这里我找到了另一个SVN的可下载地址:http://www.na-mic.org/svn/Slicer3/trunk/Libs/。
其中包含了除Qt以及VTK之外的各种相关文件,包括:
FreeSurfer/
IGT/
ITKCommandIO/
MGHImageIO/
MRML/
Qdec/
tclap/
vtkITK/
vtkTeem/
等.....
除此之外,实际编译中,我还发现需要下列开源库:
Curl: 在命令行方式下工作的开源文件传输工具
Slicerlibcurl:引用Curl库针对Slicer进行的扩展
Freetype: 完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件
KWWidgets
2.其中,TCL/TK在Windows平台的编译需要费些功夫,如果不成功的话,可以直接去网上下载已经编译好的。
3.实际编译过程中,由于使用的VTK版本问题,会出现不兼容的问题,具体找到函数我推测是新的VTK版本对数据结构进行了改变,导致旧版本无法通过编译,我的解决办法是不可取的:使用类似的函数,忽略掉这个错误,主要是错误发生初始化的步骤上,个人感觉应该不影响。有时间的话,应该试一下旧的VTK版本,估计Slicer4不会出现这个问题。
4.正因为之前我自己编译了其他完整的引用库文件,所以不用在编译Slicer时进行下载工作,网上的说法是这个过程中会下载大量的文件,这里我就忽略了,但是出现的问题是使用CMake时会检测SVN的地址,所以这里需要将CMakeLists.txt文件中的SVN段注释掉。
此外,文件中Git段也需要注释掉。
5.小的注意点是,需要特别注意自己VS2008环境的版本,是否是64位版本,在CMake时需要进行选择,不匹配的话会出现一些奇怪的错误。
相关文章推荐
- 使用源码编译64位的3D Slicer(综述)
- 使用Eclipse开发Android源码的一些注意事项
- 使用源码编译64位的3D Slicer(综述)
- 使用 Input Type="File" 的一些技巧和注意事项(添加中)
- 关于使用Carbide编译及配置的一点注意事项
- V8 JavaScript Engine 编译与使用注意事项-编译V8(win7+VS2008)
- WPS中使用VBA的一些注意事项
- Fedora10下源码编译vlc-1.1.1 流程及注意事项(2)
- GridView 使用的一些注意事项
- Matlab标定工具箱使用的一些注意事项
- V8 JavaScript Engine 编译与使用注意事项-使用V8
- std::vector的一些使用注意事项
- 使用word 2010发文章到CSDNBlog的一些注意事项
- 使用串口COM进行双机调试的一些注意事项
- Fedora10下源码编译vlc-1.1.1 流程及注意事项
- 关于使用存储过程的一些好处以及注意事项
- qwt5 的编译和使用注意事项
- 关于使用存储过程的一些好处以及注意事项
- 使用access的一些注意事项
- Flash 与 FlashBuild 结合使用时的一些注意事项