VS2017动态编译VTK8.1.1

这是本人顽固的想用VS2017编译PCL的产物。一共有7部分,这次先介绍第一部分即用vs2017动态编译vtk8.1.1

下载VTK源码包

从官网下载VTK最新的源码包.本文下载的是VTK-8.1.1.zip
VS2017动态编译VTK8.1.1_第1张图片

解压

我就解压到我的F盘了。大伙只要不解压到C盘就都可以。

VS2017动态编译VTK8.1.1_第2张图片

cmake

源码编译opencv,pcl,cgal必备神器cmake.不多说,去cmake官网下载最新版本然后安装好。这一步应该是每个地球人的基本操作,我就不过多叙述了。

qt

自己同理搞好Qt的安装配置。这也是地球人都应该掌握的基本操作。跳过。

高潮

首先以管理员身份运行cmake。然后分别设置源码路径跟构建路径。(源码路径就是你vtk解压过后的那个文件夹,你把那个文件夹点开里面会有那个CMakeLists.txt)

VS2017动态编译VTK8.1.1_第3张图片

至于构建路径,就是cmake最后在你的这个路径下面会生成vtk.sln的那个文件夹。自己随便新建一个文件夹就好了。像我就是F:\build\vtk
最后cmake就应该是这样

VS2017动态编译VTK8.1.1_第4张图片

然后就点击Configure。选择编译器:

VS2017动态编译VTK8.1.1_第5张图片

然后你会发现你的cmake一片大红。不要担心,我们马上来进行修改

VS2017动态编译VTK8.1.1_第6张图片

首先修改这个.BUILD_SHARED_LIBS 选中这个,打勾,这样最后生成的vtk才会有dll跟lib

VS2017动态编译VTK8.1.1_第7张图片

然后修改这个 VTK_Group_Qt 选中打勾,这样以后方便你在qt里面使用pcl.

VS2017动态编译VTK8.1.1_第8张图片

接着修改CMAKE_INSTALL_PREFIX 这个目录是你vtk编译完了之后关于vtk的include,lib,dll的存放目录。小白就向我一样修改吧。我反正懒得用他的默认目录然后在C盘里面找。我修改的目录是F:\VTK\8.1.1\msvc2017_64

VS2017动态编译VTK8.1.1_第9张图片

接着修改这些。

VS2017动态编译VTK8.1.1_第10张图片

这些是你默认安装在C盘时他自动跟你创建的文件夹。我们既然都不用默认的了,那肯定也要换。无非就是在F:\VTK\8.1.1\msvc2017_64里面照葫芦画瓢新建几个文件夹好了。

VS2017动态编译VTK8.1.1_第11张图片

所以换了以后的结果如下:

VS2017动态编译VTK8.1.1_第12张图片

然后就点击configure.不要慌,还要点击好几次configure的。
发现还有红色对不对。不用管,我们继续

VS2017动态编译VTK8.1.1_第13张图片

修改VTK_QT_VERSION 如果是5就ok了。不是5就改成5.

VS2017动态编译VTK8.1.1_第14张图片

如果你的qt配好了的话,什么环境变量都加好了那就应该如我下面这张图一样,都找得到qt的路径的。

VS2017动态编译VTK8.1.1_第15张图片

再一次点击configure。
结果如下:
VS2017动态编译VTK8.1.1_第16张图片

你会发现没有红色对不对,全白了对不对。但是别慌。我们仍然需要修改一个很重要的东西。
点击Add Entry
Name:CMAKE_DEBUG_POSTFIX
Type:STRING
Value:d
Description:不管,可以为空

VS2017动态编译VTK8.1.1_第17张图片

那么这么做有什么好处呢?就是让vtk的lib最后分为debug版本跟release版本。Debug版本带d。release版本不带d。方便区分.

VS2017动态编译VTK8.1.1_第18张图片

然后点击configure。不出意外就是没有红色了。然后就是点击generate。

VS2017动态编译VTK8.1.1_第19张图片

接着我们在cmake的构建目录下面找到这个,找到构建目录下的GUISupport\Qt\PluginInstall.cmake。打开。这是打开后的:

VS2017动态编译VTK8.1.1_第20张图片

我们要修改成这样:
把这一句话注释掉: set(VTK_INSTALL_QT_PLUGIN_FILE “QVTKWidgetPlugin${BUILDTYPE_SUFFIX}.dll”)
然后换成这个:
IF(BUILD_TYPE MATCHES Debug)
SET(VTK_INSTALL_QT_PLUGIN_FILE “QVTKWidgetPlugind.dll”)
ELSE()
SET(VTK_INSTALL_QT_PLUGIN_FILE “QVTKWidgetPlugin.dll”)
ENDIF()

结果如下图:

VS2017动态编译VTK8.1.1_第21张图片

然后保存.再关闭文件.

然后我们就用vs2017来编译这个vtk了。
首先,用管理员运行vs2017

VS2017动态编译VTK8.1.1_第22张图片

VS2017动态编译VTK8.1.1_第23张图片

VS2017动态编译VTK8.1.1_第24张图片

选择debug,x64,然后ALL_BUILD生成。
慢慢等吧。

VS2017动态编译VTK8.1.1_第25张图片

我电脑反正是等了5分钟。这告诉我们学编程电脑一定要好。快去找家里要预算买电脑吧。没有i7-8700k,gtx1180,128g内存,2T固态能学好编程吗?显然是不行的。
好的,大功告成

VS2017动态编译VTK8.1.1_第26张图片

然后就右键install。仅生成install

VS2017动态编译VTK8.1.1_第27张图片

结果如图:

VS2017动态编译VTK8.1.1_第28张图片

同理,再在release版本下面重复之前的操作。先all build ,再install。

VS2017动态编译VTK8.1.1_第29张图片

VS2017动态编译VTK8.1.1_第30张图片

然后就等我的下一篇文章吧。下一篇应该是用vs2017加MPI静态编译Boost.

你可能感兴趣的:(PCL,VS2017,PCL)