<link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css">
<link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-25cebea3f9.css">
<div id="content_views" class="markdown_views prism-atom-one-light">
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
</svg>
<p>在win10系统利用cmake与VS2017对VTK8.2.0<a href="https://so.youkuaiyun.com/so/search?q=%E6%BA%90%E7%A0%81&spm=1001.2101.3001.7020" target="_blank" class="hl hl-1" data-report-click="{"spm":"1001.2101.3001.7020","dest":"https://so.youkuaiyun.com/so/search?q=%E6%BA%90%E7%A0%81&spm=1001.2101.3001.7020","extra":"{\"searchword\":\"源码\"}"}" data-tit="源码" data-pretit="源码">源码</a>进行编译安装,VTK图像界面支持Qt5,编译生成Debug与Release两个版本,并对VTK自带的测试用例进行编译运行。参考博客:<a href="https://blog.youkuaiyun.com/hrq3333/article/details/81260963%E3%80%82">https://blog.youkuaiyun.com/hrq3333/article/details/81260963。</a></p>
一. 依赖
(1) VS2017 64bit
(2) Qt5 (open source版本即可)
(3) cmake
具体安装过程参照博客https://blog.youkuaiyun.com/pianzang5201/article/details/79721623,VS2017需要安装Qt VS Tools。
二. cmake编译
1. VTK源码
VTK8.2.0源码:

下载后解压到一个文件夹下,另外新建2个文件夹,一个用作编译目录,一个用作安装目录,我的目录是:

2. VTK编译
(1). 用管理员身份运行cmake,“source code"目录为源码目录(D:/VTK-8.2.0/VTK-source),“build the binaries"目录为编译目录(D:/VTK-8.2.0/VTK-build)。同时勾选 Advaced(显示cmake advanced 变量):

(2). 点击Configure,在弹窗中选择generator为Visual Studio 15 2017 Win64,表示64位的VS2017(Visual Studio 15 2017选项是表示32位的),点击Finish。

(3). 等待configure完成,cmake界面会出现一堆红色的Name与Value,我们需要手动修改一些变量的值:

(a) 勾选BUILD_SHARED_LIBS,使生成VTK的lib与dll:

(b) 勾选BUILD_EXAMPLES,使编译生成一些测试用例:

(c ) 设置CMAKE_DEBUG_POSTFIX的值,该变量表示在Debug模式下输出的文件名的后面加上的字符,我设置为”_d”,则最后Debug模式下编译生成的文件名后面都有"_d"后缀,从而区分Release模式与Debug模式所用文件:

(d) 勾选VTK_Group_Qt,让VTK支持Qt Application:

(e) 设置CMAKE_INSTALL_PREFIX目录为VTK安装目录(D:/VTK-8.2.0/VTK-install)
注意:CMAKE中的路径,分隔符都需要使用"/",而不能使用windows的"\",不然在cmake文件中会被当做转义字符而无法识别。
修改完以上5个变量后,再次点击Configure。
(4) 再次点击Configure后,红色变量会少一些,请确认红色变量的路径(Qt路径,Examples路径)是否正确,以及Qt的版本是否为5:

若正确,则再次点击Configure,正常的话就不会再有红色的变量,接下来点击Generate:

在编译目录下(D:/VTK-8.2.0/VTK-build)会生成VTK.sln。
3. VS2017生成
cmake编译完成后,需要用VS2017对项目进行生成与安装。
注意:直接在cmake中点击Open Project打开VS2017可能会生成失败,因为一些文件夹的读写权限问题。我们需要用管理员权限打开VS2017后,再打开项目VTK.sln。
(1). 使用管理员身份运行VS2017,打开项目VTK.sln,选择Debug与x64,然后右键ALL_BUILD,点击生成:

等待一段时间,当全部成功后:

(2). 再右键INSTALL,选择仅用于项目–>仅生成INSTALL:

当生成成功后:

可以在设置的VTK安装目录下(D:/VTK-8.2.0/VTK-install),看到所生成的lib文件的文件名后缀都有"_d"

(3). 然后在VS2017中将解决方案配置由Debug修改为Release,重复以上生成与Install过程:



Install成功后,在VTK安装目录下(D:/VTK-8.2.0/VTK-install),看到所生成的lib文件有2种,带后缀"_d"与不带的。

至此,VTK的Debug与Release模式的编译安装就已经完成了。
4. 测试
成功安装VTK后,我们需要测试一下VTK的安装是否正确,测试方法是运行一些官方提供的样例,这些样例也是VTK学习入门的好材料。
(1). Build examples
如果之前在cmake中选择了BUILD_EXAMPLES,那么在VS2017打开的VTK.sln解决方案中,就可以看到一些测试用的样例项目:

随便选择一个项目(我选择的是Cube项目),右键项目名称,点击设为启动项目

在解决方案配置为Release或者Debug下,按下ctrl+F5,都可以成功运行样例,生成以下立方体(立方体可用鼠标进行缩放与旋转):

(2). Source code examples
在下载的VTK8.2.0源码中,也有Examples:

我们可以选择一个GUI的Qt样例进行测试,我选择的是D:/VTK-8.2.0/VTK-source/Examples/GUI/Qt/FourPaneViewer。源码样例只提供了源代码与cmake文件,我们需要先用cmake编译,然后再用VS2017运行。
(a). 重新打开cmake,选择"source code"目录为D:/VTK-8.2.0/VTK-source/Examples/GUI/Qt/FourPaneViewer,"build"目录我设置为该目录下的build文件夹(没有的话cmake会新建一个),这里可以把Advanced选项去掉。

(b). 点击Configure,仍然选择generator为Visual Studio 15 2017 Win64,再点击Finish

同样会出现一些红色的变量:

(c ). 请确保Qt的路径是正确的,确保VTK_DIR路径下有VTKConfig.cmake文件,项目就是通过读取VTKConfig.cmake文件来获取VTK的相关配置的,CMAKE_INSTALL_PREFIX路径这里可以不用管。确认完毕后,再次点击Configure,没有红色的变量后,点击Generate:

(d). 这里我们可以直接点击Open Project,用VS2017打开项目。打开项目后,选择解决方案配置为Release或者Debug,然后右键QtVTKRenderWindows设置为启动项:

再按ctrl+F5,成功生成以下程序:

至此,支持Qt5的VTK8.2.0就已经全部编译安装成功了!
本文详细介绍了如何在Windows10系统上使用CMake和VisualStudio2017来编译VTK8.2.0源码,包括设置Qt5支持,生成Debug和Release两个版本,并编译运行VTK的测试用例。编译过程中涉及的步骤包括环境准备、CMake配置、VS2017生成与安装,以及编译后的测试验证。
238





