使用 VS 2005 编译 ITK.
1. 下载 CMake: http://www.cmake.org/cmake/resources/software.html 选择需要的版本.
我使用的是 cmake-2.6.4-win32-x86.exe. 然后安装.
若在安装过程中选择了在桌面显示图标, 则桌面会显示 CMakeSetup(deprecated) 这个图标, 而不是 CMAKE
路径中的 CMake (cmake-gui) 图标. 这里使用 CMakeSetup(deprecated), 操作稍有不同. ITK 官网提供的
文档中, 安装使用的也是 CMakeSetup.
2.下载 ITK: http://www.itk.org/ITK/resources/software.html , 这里下载的版本是
3.14.0: InsightToolkit-3.14.0.tar.gz
3. 在 D 盘新建文件夹: D:/I_VTK/ITK , 之所以要多建立一个 ITK 文件夹, 是为了以后 ITK, VTK 混合编程,
这里暂时只编译 ITK
4. 解压 InsightToolkit-3.14.0.tar.gz 到 D:/I_VTK/ITK, 重命名为ITK-3.14.0, 即 D:/I_VTK/ITK/ITK-3.14.0
5. 再建立一文件夹 ITK-3.14.0-bin, 作为 ITK 编译目标. D:/I_VTK/ITK/ITK-3.14.0-bin
再建立一新文件夹 bin, 用于安装 ITK 生成的示例程序执行文件, bin 文件夹可以不建立,不进行安装。
6. 打开 CMAKE 进行配置. 假设你已经安装好 VS2005
Where is the source code: 点击 Browse, 选择刚才 ITK 源码目录: D:/I_VTK/ITK/ITK-3.14.0
Where to build the binaries: 点击 Browse, 选择 ITK 编译目标: D:/I_VTK/ITK/ITK-3.14.0-bin
这里不需配置 Show Advanced Value, 但是如果你同时安装了 VC6, VS2005, 可能会造成混乱, 则需要选择
显示该选项手动选择编译器等.
7.点击 Configure 进行配置, 选择编译器,这里选择 Visual stdio 8 2005, VC6 配置,编译的速度都太慢,不见意使用.
将 BUILD_DOXYGEN, BUILD_EXAMPLES, BUILD_SHARED_LIBS, BUILD_TESTING 都设置为 OFF. 再次
点击 Configure, 直至所有条目都变成灰色,表示配置成功, 点击 OK 确认.
如果你想同时编译ITK 所提供的示例, 用于测试ITK 的示例, 则BUILD_EXAMPLES, BUILD_TESTING 选择为ON,
但编译时间会很长. BUILD_SHARED_LIBS 若选择为 ON, 则会 ITK 生成的库文件编译成 DLL 动态链接库形式.
另外一个选项是: CMAKE_INSTALL_PREFIX, 表示编译ITK后生成的 lib 及头文件等安装路径.
可以设置为 D:/I_VTK/ITK。
8. 在 D:/I_VTK/ITK/ITK-3.14.0-bin 目录下找到 ITK.sln, 点击,使用 VS2005 进行编译.
这里默认是不进行安装的,可以点击 Build->Configure Manager, 将工程 INSTALL 选上.
在编译完ITK后,再编译 INSTALL工程,右键点击 INSTALL,设为启动项:Set as Startup Project,编译
则会在 D:/I_VTK/ITK 目录生成 lib, include 两个文件夹
lib目录存放的是D:/I_VTK/ITK/ITK-3.14.0-bin/bin/debug 中的 ITK lib 文件.
include 则存放 ITK 所有的头文件. bin 目录存放的是 ITK 生成的一些可执行文件。
这里没有必要选择 INSTALL, 因为 D:/I_VTK/ITK/ITK-3.14.0 中这些文件都已经存在.
不过选择编译 INSTALL, 安装 ITK,会使目录结构更加清晰。不使用 CMAKE 自动配置时比较方便。
9.将 ITK 生成的 lib 库文件添加到 VS2005 VC++ 工程搜索路径:
tool->option->Projects and Solutions->VC++ Directories
选择Library files, 然后在下面添加 D:/I_VTK/ITK/ITK-3.14.0-bin/bin/debug.
到此完成.
注意:
1. 如果你想生成release 版本, 则在编译 ITK 时 Build->Configure Manager 设置成 release, 或者两者都生成.
但是如果你生成的是 release 版, 则编译 ITK 中的示例程序时, 有许多例子生成的 debug 版本无法运行.
同样, 如果你生成的是 debug 版,则编译 ITK 中示例程序时, 有许多例子生成的 release 版本无法运行.
这是我亲自测试过的.
所以,在编译 ITK 时, 可以同时生成 debug, release 版本,这样进行开发时, 只需修改 lib 搜索路径,
便可轻易生成 release 或 debug 版的程序.
2.ITK 整个工程包括许多小工程, 且在编译 ITK 时, 使用的VC 运行库都是动态版本. 所以在编译 ITK 示例程序时,
不能选择使用静态链接. 否则, 你使用的 ITK 库是动态链接 VC 运行库,而自己的ITK 程序则是静态 VC 运行库,
造成冲突,无法编译通过.