VS2013配置VTK7.1.1

作为一个新手小白,这两天配置VTK出现了各种问题,解决过程中极其痛苦,将配置过程记录下来。
1、安装VTK
VTK可以从http://www.vtk.org/download/ 网站免费下载,一般只需要下载VTK源文件压缩即可,如果需要使用样例数据,还需下载VTK数据压缩包。此外,还要用到CMake工具,可以从https://cmake.org/download/ 免费下载。

这里写图片描述

1)将VTK源代码包解压到D:Program Files\VTK目录下。
2)将VTK数据包解压到D:Program Files\VTK\VTKData目录下。
注:VTK目录和VTKData目录是自己创建的,可以自行指定位置,可以是任何名字,但是最好不要使用中文命名,以免出现问题。
2、安装CMake
安装CMake是和普通的程序安装没有任何区别,只有一步需要稍微说明一下。当询问是否将CMake添加到系统路径,默认是不添加的,这主要是为那些习惯命令行操作方式的用户准备的。如果想深入了解CMake,可以选择将其添加到系统路径,但是即使现在不选择,以后也可以在PATH环境变量中手动添加。
选择:Add CMake to the system PATH for all users这一项
安装完成后,打开CMake,期主界面如图所示。

这里写图片描述

1)在Where is the source code:处,单击按钮Browse Source,指定VTK源代码所在路径,这里应该是D:\Program Files\VTK。
2)在Where to build the binaties:处,单击按钮Browse Build,指定将要生成工程的路径,这里选择D:\Program Files\VTK\bin(bin是新建的目录)。
3)然后单击按钮Configure,打开如图所示的编译器选择对话框。

这里写图片描述

单击Finish按钮关闭编译器选择对话框,即可启动配置。这是按钮Gonfigure变成按钮Stop,随时可以中断配置。
会出来红色的扫描结果。

这里写图片描述

下面是比较重要的选项。
CMAKE_INSTALL_PREFIX为默认安装路径,也是INSTALL工程生成的地方,系统默认为C:\Program Files\VTK。
Build推荐勾选如下:

这里写图片描述

BUILD_EXAMPLES:在BUILD分组里,用来询问是否生成VTK所带的例子。不勾选状态下时可以缩短编译的时间,需要学习VTK中自带例程的可以选择该项。(初学者,建议选择生成VTK所带的例子,默认是不选择的。)
BUILD_SHARED_LIBS:在BUILD分组里,用来询问是否生成动态链接库。选中代表编译生成DLL文件,也就是生成动态链接库,不选中时编译成静态库,只生成LIB文件。DLL文件需要复制到WINDOWS的system32目录下。如果不选择此项,应用程序可以独立运行,但是可执行文件的体积比较大;如果选择此项,应用程序必须需要生成的dll动态库支持才能运行,但可执行文件的体积可以做的比较小。建议选择此项,默认是不选择的。
BUILD_TESTING: 在BUILD分组里,选中代表编译测试代码。
根据需要对VTK_Group进行勾选:

这里写图片描述

VTK_USE_GUISUPPORT: 在VTK分组里,表示是否支持GUI。如果想在MFC应用程序中使用VTK,那么就必须选择此项。因为只有打开这个选项,然后再次点击Configure按钮才能打开VTK_USE_MFC选项,需要勾该选项再次进行Configure。如果无法运行VTK中与MFC混合编程的例子,提示错误都是缺少vtkmfc.lib,问题就出现在这个选项上。建议选择此项,默认是不选择的。
TK_USE_MFC:在VTK分组里,如果已打开VTK_USE_GUISUPPORT选项,并再次单击按钮Configure,才能看到这个选项,建议选择此项,默认是不选择的。
我因为没下QT所以VTK_Group_Qt没有选择。
修改完成后重新Configure,直到没有红色为止,然后Generate。如下图所示

这里写图片描述

3、生成VTK
在D:\Program Files\VTK\bin目录下,找到“VTK.sln”解决方案文件,双击这个文件,用vs打开它。右键点击ALL_BUILD,选择重新生成,该步骤耗时较长。
第一次生成后会有一些链接错误,比如打不开….\lib\Debug下的vtkViewsInfovisPython27D-7.1.lib文件,可能是由于生成顺序导致,因此再生成一遍,可以减少一部分错误。我在生成ALL_BUILD时,没有出现任何问题,还算是比较幸运的。
生成成功后找到INSTALL项目,右击选择仅用于项目->仅生成INSTALL,会在CMAKE_INSTALL_PREFIX设置的目录下生成include目录,包含VTK需要的头文件。
在这步生成INSTALL是,就出现了一个问题,错误如下。

这里写图片描述

这个问题通过将VS2013设置为管理员权限运行就解决了。当时卡在这好久。

4、运行Examples
4.1 CMake编译
运行CMake
source code,例如:D:/Program Files/VTK/VTK-7.1.1/Examples/Tutorial/Step1/Cxx。
build the binaries,例如:D:/Program Files/VTK/VTKCode/Step1。
第一次configure之后需要填入一些参数,其中VTK_DIR填入VTKConfig.cmake所在路径,一般情况下是安装VTK时配置的生成路径, 即为C:/Program Files/VTK/lib/cmake/vtk-7.1,CMAKE_INSTALL_PREFIX是生成INSTALL.vcxproj的地方,默认是C盘,可以修改到工程文件生成目录下,我修改到了目录D:/Program Files/VTK/Step1下。configure之后generate。编译之后到工程文件目录下D:/Program Files/VTK/VTKCode/Step1,可以找到Step1.sln,打开之后选择Cone作为启动项目进行生成,生成成功即可运行。
4.2 新建项目在编译
完成之后,建立一个win32控制台应用程序来测试安装编译结果。
打开vs2013,新建一个win32控制台应用程序。创建完成之后,向项目中添加一个cpp文件。随后配置我们的项目。
在菜单栏中选择视图->属性管理器。

这里写图片描述

由于目前使用的是Debug版本编译,所以在此我们只需要去设置Debug下的配置文件。双击打开Microsoft.Cpp.win32.User。
在包含目录中添加VTK生成目录下的include文件夹,这里是C:\Program Files\VTK\include\vtk-7.1。
在库目录中添加VTK生成目录下的lib文件夹,这里是C:\Program Files\VTK\lib。

这里写图片描述

在Microsoft.Cpp.win32.User的属性页面,打开链接器,选择输入。添加附加依赖项。

这里写图片描述

CMake设置时没有勾选VTK_Group_Qt选择项,编译的时候出现了错误,LINK1104:无法打开文件件vtkGUISupportQt-7.1.lib然后把所有带有**Qt.lib的附加项目删除之后才可以。但是在编译的过程中还是出现中断错误。
在程序中加了三行代码就可编译通过

#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: 以下是在Ubuntu 18.04上安装VTK 7.1.1的步骤: 1. 打开终端并更新软件包列表: sudo apt-get update 2. 安装必要的依赖项: sudo apt-get install build-essential cmake git libqt5opengl5-dev libqt5x11extras5-dev libqt5xmlpatterns5-dev libqt5xmlpatterns5-private-dev libqt5svg5-dev libqt5webkit5-dev libqt5script5-dev libqt5scripttools5-dev libqt5sql5-sqlite libqt5sql5-mysql libqt5sql5-psql libqt5sql5-odbc libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci libqt5sql5-tds libqt5sql5-ibase libqt5sql5-oci ### 回答2: Ubuntu 18.04是目前最受欢迎的Linux操作系统之一,它提供了许多可靠和稳定的软件包。VTK是一种流行的图形库,可用于开发2D和3D应用程序。这篇文章将会介绍如何在Ubuntu 18.04上安装VTK 7.1.1,并提供详细的步骤。 步骤一:更新系统 在安装VTK 7.1.1之前,您需要首先确保您的Ubuntu 18.04系统已经更新到最新版本。您可以使用以下命令来完成此操作: sudo apt-get update sudo apt-get upgrade 步骤二:安装必要的依赖项 在安装VTK 7.1.1之前,您需要安装一些必要的依赖项,以确保它能够正确地运行。您可以使用以下命令来安装这些依赖项: sudo apt-get install libxml2-dev libjpeg-dev libtiff-dev libpng-dev zlib1g-dev libpython2.7-dev 步骤三:下载VTK的源代码 在安装VTK之前,您需要先从官方网站下载VTK的源代码。您可以使用以下命令从VTK官方网站下载最新的源代码: wget https://www.vtk.org/files/release/7.1/VTK-7.1.1.tar.gz 步骤四:解压缩VTK的源代码 在下载完VTK的源代码之后,您需要使用以下命令解压缩它: tar -zxvf VTK-7.1.1.tar.gz 步骤五:编译VTK的源代码 解压缩完VTK的源代码之后,您需要使用以下命令编译它: cd VTK-7.1.1 mkdir build cd build cmake .. make sudo make install 步骤六:测试VTK的安装 完成编译和安装VTK之后,您可以使用以下命令来测试VTK的安装: cd Examples/Gui/Qt ./CxxWidgetsConeExample 如果一切正常,您应该能够看到一个3D的圆锥体模型。 结论 在本文,我们介绍了如何在Ubuntu 18.04上安装VTK 7.1.1。通过遵循上述步骤,您可以轻松安装和配置VTK,从而为您的2D和3D应用程序提供强大的图形库。 ### 回答3: VTK是一个开源的图形处理库,提供了许多图形处理功能,如三维可视化、数据分析、几何算法等。Ubuntu 18.04是一个流行的操作系统,下面我来介绍如何在Ubuntu 18.04上安装VTK 7.1.1。 步骤如下: 1. 准备工作:打开终端,更新软件列表,并安装一些必要的依赖库: sudo apt-get update sudo apt-get install build-essential cmake libgl1-mesa-dev libxt-dev libvtk7-dev 2. 下载安装VTK 7.1.1: wget https://www.vtk.org/files/release/7.1/VTK-7.1.1.tar.gz tar xf VTK-7.1.1.tar.gz cd VTK-7.1.1 mkdir build cd build 3. 配置和编译VTK: cmake .. make -j4 如果你拥有多个核心,可以用-j来指定使用多核心编译,这里我用了4个核心,你可以根据自己的情况适当调整。 4. 安装VTK: sudo make install 5. 检查VTK是否成功安装: 在终端输入vtk7,如果出现VTK的版本信息,则表示VTK已经成功安装。 至此,安装VTK 7.1.1 完成。但是,由于VTK库较大,安装时间较长,您可能需要耐心等待一段时间。 总结:在Ubuntu 18.04安装VTK 7.1.1需要先安装必要的依赖库,然后下载、配置、编译、安装VTK。安装成功后,您可以通过使用vtk7命令来测试安装是否成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值