cmake+VTK+ITK+VS2019的安装,编译和配置

1,下载 CMake,选择最新版本。

  地址 http://www.cmake.org/cmake/resources/software.html

  我选择的是 cmake-3.0.0-win32-x86.exe. 然后安装。一路next即可。

2,下载itk

  地址: http://www.itk.org/ITK/resources/software.html

   我选择的是 InsightToolkit-4.5.2.zip

   新建一个D:\ITK_source目录,将itk下载到该目录下并且解压到当前文件夹。

3, D 盘新建两个文件夹:

  D:\ITK_VTK\ITK\bin   用于存放cmake产生的ITK项目文件

  D:\ITK_VTK\ITK\ITK  用于保存编译成功后的bin, include, lib, share等文件

  多建立一个 ITK_VTK目录是为了VTK也可编译在ITK_VTK这个目录下,为了以后ITK和VTK的混合编程。

4, 打开Cmake进行设置

 where is the source code 选择D:/ITK_source/InsightToolkit-4.5.2

 where to build the binaries 选择 D:\ITK_VTK\ITK\bin

 点击Configure,选择编译器:Visual studio 2019 Win64

cmake+VTK+ITK+VS2019的安装,编译和配置
等待Configure完成(约10分钟)。

cmake的选项中将BUILD TESTING和BUILD EXAMPLES不选。

勾选BUILD_SHARED_LIBS.

勾选Advanced之后更改CMAKE_INSTALL_PREFIX(表示编译ITK后生成的lib 及include等的安装路径)设置为 D:\ITK_VTK\ITK\ITK

再次点击 Configure, 直至所有条目都变成灰色,表示配置成功, 点击Generate确认.

cmake+VTK+ITK+VS2019的安装,编译和配置
找到ITK.sln文件,双击进入VS里配置。

5, VS 2010编译

使用Debug还是Release? 建议选Release。本人选了Debug以后在第一个例子中总是报一些 error LNK2038: mismatch detected for ‘_ITERATOR_DEBUG_LEVEL’: value ‘2’ doesn’t match value ‘0’ in *.obj 之类的错误。后来改用Release编译就行了。
VS打开之后,选择右边的解决方案 导航栏,找到 ALL BUILD 右击,点击 BUILD(生成);VS会自动配置编译好的 ITK源码(这个过程比较长,请耐心等待),
cmake+VTK+ITK+VS2019的安装,编译和配置
上图就是配置成功的标志,但是到这里不代表已经配置成功了,还需要接下来的几步才能成功,这时候如果你打开之前建立的 BIN 文件夹,发现里面仍是空的,接下来的一步就是把 ITK 相关的库函数导入 BIN问价夹中,

在ALL BUILD(上一步用到的) 下面有一个INSTALL,鼠标右击选中 Project Only(仅本项目),点击子选项 Build Only INSTALL(仅生成),然后调试框就出现生成的过程;

cmake+VTK+ITK+VS2019的安装,编译和配置

当全部生成完毕,你会发现原来BIN 文件夹下出现了 bin、include 、share、lib 等几个文件夹,别急,到这里还没完成,还有一步需要衔接 ITK的头文件和库函数;
cmake+VTK+ITK+VS2019的安装,编译和配置
VS衔接ITK的库函数:
新建项目,右键点击属性,配置库文件,记住配置release版本。

cmake+VTK+ITK+VS2019的安装,编译和配置

cmake+VTK+ITK+VS2019的安装,编译和配置
cmake+VTK+ITK+VS2019的安装,编译和配置
需要把所有的.lib的文件的文件名都输入到上面那个框里面。

这里有一个小窍门:

可以按照这个链接的方法去做。

https://jingyan.baidu.com/article/f3ad7d0f51f5bf09c3345bbd.html
  然后删除掉所有的不是.lib的文件。

将所有的文件名复制到那个框里面。

测试代码:

#include "itkImage.h"
#include <iostream>
int main()
{
    using ImageType = itk::Image< unsigned short, 3 >;
    ImageType::Pointer image = ImageType::New();
    std::cout << "ITK Hello World !" << std::endl;
    return EXIT_SUCCESS;
}

运行结果:
cmake+VTK+ITK+VS2019的安装,编译和配置

上一篇:vs2019编译 protobuf,包括zlib


下一篇:VS2019+QT5.14.2遇到的一些问题的记录