windows和linux下VTK7.0.0的配置_vtk7.0下载-程序员宅基地

技术标签: cmake  windows 7  vtk  visual studio  


开发环境
Windows 7
VS2013
Ubuntu14.04 
VTK7.0.0
cmake

windows

cmake安装

  • 官网下载,直接安装即可,尽量使用新版本。

VTK下载及解压

  • 官网下载VTK-7.0.0.zipVTKData-7.0.0.zip,解压到自己新建的一个文件夹中,我的就是它解压出来的文件夹VTK-7.0.0,绝对路径是E:\InstallFolders\VTK
  • 在刚才的文件夹的同级文件夹中新建VTK-7.0.0-bin文件夹,用于之后解压cmake的目标目录。

文件夹部署
* 打开cmake,选择编译的原目录和目标目录,如下:

cmake的原目录和目标目录

  • 点击cmake左下方的Configure按钮,选择Visual Studio 12 2013,无论是什么VS的版本,尽量不要选Win64版本(我没试过=。=)。

  • 勾选上方的Advanced复选框,点击Config开始编译。

  • 如果出现错误(有红色标出),重新Config,直到没有错误为止。在这一步中,有一些选项可以选择,如BUILD_EXAMPLESBUILD_SHARED_LIBS等,刚才提到的是比较重要的,按照下图配置

选项

其他的按照默认即可,下图是没有错误生成时的情形。

编译后结果

  • 点击Configure右边的Generate,完成即可。

VS测试是否编译成功

  • 在编译输出目录下有一个VTK.sln的文件,直接打开,全部重新编译,如果没有错误,则说明安装成功,选择Cone6的项目,启动新实例,得到以下图像

Cone6生成图片

VS配置

  • 在VS中新建一个空的的ConsoleApplication,添加main.cpp,将刚才的Cone6中的Cone6.cxx中的内容拷贝过去,此时编译会报错。接下来进行配置。
  • 打开property manager->Microsoft.Cpp.Win32.user的属性,在VC++ Directories中的Library Directories里添加E:\InstallFolders\VTK\VTK-7.0.0-bin\lib\Debug,即库目录。
  • C/C++ -> General中的Additional Include Directories中添加E:\InstallFolders\VTK\VTK-7.0.0-bin\Filters\Sources;E:\InstallFolders\VTK\VTK-7.0.0\Filters\Sources;E:\InstallFolders\VTK\VTK-7.0.0-bin\Common\ComputationalGeometry;E:\InstallFolders\VTK\VTK-7.0.0\Common\ComputationalGeometry;E:\InstallFolders\VTK\VTK-7.0.0-bin\Common\DataModel;E:\InstallFolders\VTK\VTK-7.0.0\Common\DataModel;E:\InstallFolders\VTK\VTK-7.0.0-bin\Common\Math;E:\InstallFolders\VTK\VTK-7.0.0\Common\Math;E:\InstallFolders\VTK\VTK-7.0.0-bin\Common\Core;E:\InstallFolders\VTK\VTK-7.0.0\Common\Core;E:\InstallFolders\VTK\VTK-7.0.0-bin\Utilities\KWSys;E:\InstallFolders\VTK\VTK-7.0.0\Utilities\KWSys;E:\InstallFolders\VTK\VTK-7.0.0-bin\Common\Misc;E:\InstallFolders\VTK\VTK-7.0.0\Common\Misc;E:\InstallFolders\VTK\VTK-7.0.0-bin\Common\System;E:\InstallFolders\VTK\VTK-7.0.0\Common\System;E:\InstallFolders\VTK\VTK-7.0.0-bin\Common\Transforms;E:\InstallFolders\VTK\VTK-7.0.0\Common\Transforms;E:\InstallFolders\VTK\VTK-7.0.0-bin\Filters\General;E:\InstallFolders\VTK\VTK-7.0.0\Filters\General;E:\InstallFolders\VTK\VTK-7.0.0-bin\Filters\Core;E:\InstallFolders\VTK\VTK-7.0.0\Filters\Core;E:\InstallFolders\VTK\VTK-7.0.0-bin\Common\ExecutionModel;E:\InstallFolders\VTK\VTK-7.0.0\Common\ExecutionModel;E:\InstallFolders\VTK\VTK-7.0.0-bin\Interaction\Widgets;E:\InstallFolders\VTK\VTK-7.0.0\Interaction\Widgets;E:\InstallFolders\VTK\VTK-7.0.0-bin\Filters\Hybrid;E:\InstallFolders\VTK\VTK-7.0.0\Filters\Hybrid;E:\InstallFolders\VTK\VTK-7.0.0-bin\Imaging\Sources;E:\InstallFolders\VTK\VTK-7.0.0\Imaging\Sources;E:\InstallFolders\VTK\VTK-7.0.0-bin\Imaging\Core;E:\InstallFolders\VTK\VTK-7.0.0\Imaging\Core;E:\InstallFolders\VTK\VTK-7.0.0-bin\Rendering\Core;E:\InstallFolders\VTK\VTK-7.0.0\Rendering\Core;E:\InstallFolders\VTK\VTK-7.0.0-bin\Common\Color;E:\InstallFolders\VTK\VTK-7.0.0\Common\Color;E:\InstallFolders\VTK\VTK-7.0.0-bin\Filters\Extraction;E:\InstallFolders\VTK\VTK-7.0.0\Filters\Extraction;E:\InstallFolders\VTK\VTK-7.0.0-bin\Filters\Statistics;E:\InstallFolders\VTK\VTK-7.0.0\Filters\Statistics;E:\InstallFolders\VTK\VTK-7.0.0-bin\Imaging\Fourier;E:\InstallFolders\VTK\VTK-7.0.0\Imaging\Fourier;E:\InstallFolders\VTK\VTK-7.0.0-bin\ThirdParty\alglib;E:\InstallFolders\VTK\VTK-7.0.0\ThirdParty\alglib;E:\InstallFolders\VTK\VTK-7.0.0-bin\Filters\Geometry;E:\InstallFolders\VTK\VTK-7.0.0\Filters\Geometry;E:\InstallFolders\VTK\VTK-7.0.0-bin\Filters\Modeling;E:\InstallFolders\VTK\VTK-7.0.0\Filters\Modeling;E:\InstallFolders\VTK\VTK-7.0.0-bin\Imaging\General;E:\InstallFolders\VTK\VTK-7.0.0\Imaging\General;E:\InstallFolders\VTK\VTK-7.0.0-bin\Imaging\Hybrid;E:\InstallFolders\VTK\VTK-7.0.0\Imaging\Hybrid;E:\InstallFolders\VTK\VTK-7.0.0-bin\IO\Image;E:\InstallFolders\VTK\VTK-7.0.0\IO\Image;E:\InstallFolders\VTK\VTK-7.0.0-bin\Utilities\DICOMParser;E:\InstallFolders\VTK\VTK-7.0.0\Utilities\DICOMParser;E:\InstallFolders\VTK\VTK-7.0.0-bin\IO\Core;E:\InstallFolders\VTK\VTK-7.0.0\IO\Core;E:\InstallFolders\VTK\VTK-7.0.0-bin\ThirdParty\zlib;E:\InstallFolders\VTK\VTK-7.0.0\ThirdParty\zlib;E:\InstallFolders\VTK\VTK-7.0.0-bin\Utilities\MetaIO\vtkmetaio;E:\InstallFolders\VTK\VTK-7.0.0-bin\Utilities\MetaIO;E:\InstallFolders\VTK\VTK-7.0.0\Utilities\MetaIO;E:\InstallFolders\VTK\VTK-7.0.0-bin\ThirdParty\jpeg;E:\InstallFolders\VTK\VTK-7.0.0\ThirdParty\jpeg;E:\InstallFolders\VTK\VTK-7.0.0-bin\ThirdParty\png;E:\InstallFolders\VTK\VTK-7.0.0\ThirdParty\png;E:\InstallFolders\VTK\VTK-7.0.0-bin\ThirdParty\tiff;E:\InstallFolders\VTK\VTK-7.0.0\ThirdParty\tiff;E:\InstallFolders\VTK\VTK-7.0.0-bin\Interaction\Style;E:\InstallFolders\VTK\VTK-7.0.0\Interaction\Style;E:\InstallFolders\VTK\VTK-7.0.0-bin\Rendering\Annotation;E:\InstallFolders\VTK\VTK-7.0.0\Rendering\Annotation;E:\InstallFolders\VTK\VTK-7.0.0-bin\Imaging\Color;E:\InstallFolders\VTK\VTK-7.0.0\Imaging\Color;E:\InstallFolders\VTK\VTK-7.0.0-bin\Rendering\FreeType;E:\InstallFolders\VTK\VTK-7.0.0\Rendering\FreeType;E:\InstallFolders\VTK\VTK-7.0.0-bin\ThirdParty\freetype;E:\InstallFolders\VTK\VTK-7.0.0\ThirdParty\freetype;E:\InstallFolders\VTK\VTK-7.0.0-bin\Rendering\Volume;E:\InstallFolders\VTK\VTK-7.0.0\Rendering\Volume;E:\InstallFolders\VTK\VTK-7.0.0-bin\Rendering\OpenGL2;E:\InstallFolders\VTK\VTK-7.0.0\Rendering\OpenGL2;E:\InstallFolders\VTK\VTK-7.0.0-bin\Utilities\EncodeString;E:\InstallFolders\VTK\VTK-7.0.0\Utilities\EncodeString;E:\InstallFolders\VTK\VTK-7.0.0-bin\ThirdParty\glew;E:\InstallFolders\VTK\VTK-7.0.0\ThirdParty\glew;E:\InstallFolders\VTK\VTK-7.0.0-bin\bin\Debug;%(AdditionalIncludeDirectories)
  • Linker -> Input -> Additional Dependencies中添加

    kernel32.lib
    user32.lib
    gdi32.lib
    winspool.lib
    shell32.lib
    ole32.lib
    oleaut32.lib
    uuid.lib
    comdlg32.lib
    advapi32.lib
    comctl32.lib
    vfw32.lib
    ws2_32.lib
    wsock32.lib
    opengl32.lib
    vtkChartsCore-7.0.lib
    vtkCommonColor-7.0.lib
    vtkCommonComputationalGeometry-7.0.lib
    vtkCommonCore-7.0.lib
    vtkCommonDataModel-7.0.lib
    vtkCommonExecutionModel-7.0.lib
    vtkCommonMath-7.0.lib
    vtkCommonMisc-7.0.lib
    vtkCommonSystem-7.0.lib
    vtkCommonTransforms-7.0.lib
    vtkDICOMParser-7.0.lib
    vtkDomainsChemistry-7.0.lib
    vtkDomainsChemistryOpenGL2-7.0.lib
    vtkFiltersAMR-7.0.lib
    vtkFiltersCore-7.0.lib
    vtkFiltersExtraction-7.0.lib
    vtkFiltersFlowPaths-7.0.lib
    vtkFiltersGeneral-7.0.lib
    vtkFiltersGeneric-7.0.lib
    vtkFiltersGeometry-7.0.lib
    vtkFiltersHybrid-7.0.lib
    vtkFiltersHyperTree-7.0.lib
    vtkFiltersImaging-7.0.lib
    vtkFiltersModeling-7.0.lib
    vtkFiltersParallel-7.0.lib
    vtkFiltersParallelImaging-7.0.lib
    vtkFiltersProgrammable-7.0.lib
    vtkFiltersSMP-7.0.lib
    vtkFiltersSelection-7.0.lib
    vtkFiltersSources-7.0.lib
    vtkFiltersStatistics-7.0.lib
    vtkFiltersTexture-7.0.lib
    vtkFiltersVerdict-7.0.lib
    vtkGeovisCore-7.0.lib
    vtkIOAMR-7.0.lib
    vtkIOCore-7.0.lib
    vtkIOEnSight-7.0.lib
    vtkIOExodus-7.0.lib
    vtkIOExport-7.0.lib
    vtkIOGeometry-7.0.lib
    vtkIOImage-7.0.lib
    vtkIOImport-7.0.lib
    vtkIOInfovis-7.0.lib
    vtkIOLSDyna-7.0.lib
    vtkIOLegacy-7.0.lib
    vtkIOMINC-7.0.lib
    vtkIOMovie-7.0.lib
    vtkIONetCDF-7.0.lib
    vtkIOPLY-7.0.lib
    vtkIOParallel-7.0.lib
    vtkIOParallelXML-7.0.lib
    vtkIOSQL-7.0.lib
    vtkIOVideo-7.0.lib
    vtkIOXML-7.0.lib
    vtkIOXMLParser-7.0.lib
    vtkImagingColor-7.0.lib
    vtkImagingCore-7.0.lib
    vtkImagingFourier-7.0.lib
    vtkImagingGeneral-7.0.lib
    vtkImagingHybrid-7.0.lib
    vtkImagingMath-7.0.lib
    vtkImagingMorphological-7.0.lib
    vtkImagingSources-7.0.lib
    vtkImagingStatistics-7.0.lib
    vtkImagingStencil-7.0.lib
    vtkInfovisCore-7.0.lib
    vtkInfovisLayout-7.0.lib
    vtkInteractionImage-7.0.lib
    vtkInteractionStyle-7.0.lib
    vtkInteractionWidgets-7.0.lib
    vtkLocalExample-7.0.lib
    vtkNetCDF-7.0.lib
    vtkNetCDF_cxx-7.0.lib
    vtkParallelCore-7.0.lib
    vtkRenderingAnnotation-7.0.lib
    vtkRenderingContext2D-7.0.lib
    vtkRenderingContextOpenGL2-7.0.lib
    vtkRenderingCore-7.0.lib
    vtkRenderingFreeType-7.0.lib
    vtkRenderingImage-7.0.lib
    vtkRenderingLOD-7.0.lib
    vtkRenderingLabel-7.0.lib
    vtkRenderingOpenGL2-7.0.lib
    vtkRenderingVolume-7.0.lib
    vtkRenderingVolumeOpenGL2-7.0.lib
    vtkViewsContext2D-7.0.lib
    vtkViewsCore-7.0.lib
    vtkViewsInfovis-7.0.lib
    vtkalglib-7.0.lib
    vtkexoIIc-7.0.lib
    vtkexpat-7.0.lib
    vtkfreetype-7.0.lib
    vtkglew-7.0.lib
    vtkhdf5-7.0.lib
    vtkhdf5_hl-7.0.lib
    vtkjpeg-7.0.lib
    vtkjsoncpp-7.0.lib
    vtklibxml2-7.0.lib
    vtkmetaio-7.0.lib
    vtkmyCommon.lib
    vtkmyImaging.lib
    vtkmyUnsorted.lib
    vtkoggtheora-7.0.lib
    vtkpng-7.0.lib
    vtkproj4-7.0.lib
    vtksqlite-7.0.lib
    vtksys-7.0.lib
    vtktiff-7.0.lib
    vtkverdict-7.0.lib
    vtkzlib-7.0.lib
    
  • 上面在属性管理器中配置好了,之后再新建项目的时候不用重新配置了

项目本身的配置

  • 如果此时运行,会提示no override found for 'vtkPolyDataMapper'。因为VTK使用cmake编译的,在VS下编译的话则需要预编译的一些宏定义。
  • 点击新建的项目的属性,在C/C++ -> Preprocessor中添加WIN32;_WINDOWS;_DEBUG;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_WARNINGS;VTK_IN_VTK;vtkRenderingCore_INCLUDE="E:/InstallFolders/VTK/VTK-7.0.0-bin/CMakeFiles/vtkRenderingCore_AUTOINIT_vtkInteractionStyle_vtkRenderingFreeType_vtkRenderingOpenGL2.h";CMAKE_INTDIR="Debug";%(PreprocessorDefinitions),注意不要将之前项目中的宏定义覆盖了。具体的预编译的部分可以参考Cone6中的预编译的宏定义。
  • 在之后每次新建工程时,都需要添加预编译的宏定义!

结果

  • 运行程序,得到和之前相同的图片如下:

自己建立的工程

一些有用的链接

http://blog.csdn.net/left_la/article/details/7069708

http://stackoverflow.com/questions/18642155/no-override-found-for-vtkpolydatamapper

注意

  • 可以将预编译的宏定义放到property manager中,不用之后每次新建项目都定义,但是有一点需要注意:里面的vtkRenderingCore_INCLUDE="E:/InstallFolders/VTK/VTK-7.0.0-bin/CMakeFiles/vtkRenderingCore_AUTOINIT_vtkInteractionStyle_vtkRenderingFreeType_vtkRenderingOpenGL2.h"是在对应的位置上,不同的项目要求的makeFile的头文件可能不一样(对应的文件夹下共有4个头文件),如果报野指针异常的错误,可以考虑是否是这个头文件的问题。

linux

g++ cmake等基本软件需要安装

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012526003/article/details/51627790

智能推荐

Springboot运行helloworld_运行springboot项目hello-程序员宅基地

文章浏览阅读280次。Springboot HelloWorld一个功能:(一个典型的web应用)浏览器发起hello请求,服务器接收请求并处理,响应Hello World字符串1、创建一个Spring Initializr 工程;2、Spingboot相关依赖3、编写主程序 启动类package com.FirstDomo;import org.springframework.boot.SpringA..._运行springboot项目hello

【ONNX】onnxruntime-gpu无法使用gpu问题(CUDA适配)_模型转成onnx后,为啥调用gpu会不成功-程序员宅基地

文章浏览阅读6.3k次。No worries. Then please check your CUDA and CuDNN versions. They must be compatible to each other. Here is the link which might be helpful:CUDA - onnxruntimeFor ONNXRuntime 1.9.0 package, I think it was built by CUDA 11.4. Ideally it should support 11.x .._模型转成onnx后,为啥调用gpu会不成功

react函数式组件 PubSub消息订阅与发布(消息订阅与发布的时机非常关键)一个页面(A)跳转到另一个页面(B)的传值方法_useffect pubsub-程序员宅基地

文章浏览阅读811次。react 函数式组件 使用antd框架 实现两个没有父子关系,单纯两个页面之间的值传递 一个页面跳转到另一个页面的传值方法: 1、通过路由传值 2、使用PubSub:消息订阅与发布传值发布消息:standardType为我设置的一个值,需要再另一个页面中应用。```typescript fieldProps={{ onChange: (value) =..._useffect pubsub

CentOS7下RabbitMQ的安装与卸载_删除/ var / log / rabbitmq / *-程序员宅基地

文章浏览阅读1.4k次。安装1. 下载安装包* [https://github.com/rabbitmq](https://github.com/rabbitmq) 放得开放大看风景的房间打开. 安装 4. 启动管理界面插件 5. 创建用户及授权 6. 启动 7. 界面访问卸载_删除/ var / log / rabbitmq / *

动态数组的定义和声明(c++)_c++中数组函数的声明与定义-程序员宅基地

文章浏览阅读2.9k次。动态数组的定义和声明:https://blog.csdn.net/singebogo/article/details/70477737_c++中数组函数的声明与定义

iOS 开发 申请299美金企业开发账号-程序员宅基地

文章浏览阅读5k次。最近因业务需要尝试申请了299美金的企业开发账号, 这种账号的优点我就不多说了,以下主要讲述申请过程1.打开苹果开发者中心(https://developer.apple.com), 上拉到底部找到并进入 Enterprise(企业) 2.接下来是关于 Enterprise 的介绍, 找到并进入 Create 3.上拉到底部找到并进入 Join the Program 4.接下来

随便推点

postgre数据库备份与恢复_postgre备份恢复 csdn-程序员宅基地

文章浏览阅读632次。一、命令行执行数据备份:1.输入备份命令 /opt/postgresql/pg96/bin/pg_dump -h ip地址 -U 用户名 -W -d 数据库名 -n 模式名 > /data/backup.dmp2.输入数据库密码:password,开始导出数据库数据3.输入恢复命令 /opt/postgresql/pg96/bin/psql -h ip地址 -U 用户名 -d 数据库名 -_postgre备份恢复 csdn

error LNK2019:无法解析的外部符号——解决记录_无法解析的外部符号 bcryptopenalgorithmprovider-程序员宅基地

文章浏览阅读312次。error LNK2019:无法解析的外部符号最近vs2015遇到了一个编译问题,error LNK2019:无法解析的外部符号从网上搜了一些,对照着看了下,项目属性的依赖库没啥问题,win32平台没问题,32bit没问题最后找到自己的头文件,发现在.h和.cpp里重复写了新增的依赖头文件,去掉后恢复正常..._无法解析的外部符号 bcryptopenalgorithmprovider

Windows搭建Apollo MQTT服务器_activemq apollo注册为windows服务-程序员宅基地

文章浏览阅读1.8k次。1.下载Java JDK 安装包 ( apollo 依赖Java环境)下载链接:http://www.oracle.com/technetwork/java/javase/downloads/index.html2.安装 java JDK安装完后设置JAVA_HOME环境变量3.下载 apollo 安装包下载地址:http://archive.apache.org/dis..._activemq apollo注册为windows服务

latex中某一页出现图片与上下文间距过大,利用\vspace等强制修改间距的命令依然无法解决的问题_latex调整图片与图片的距离没有反应-程序员宅基地

文章浏览阅读6k次,点赞3次,收藏5次。所以会优先插在当前位置,而我的文章的当前插入图片的位置后面有一个很高的公式。我们知道latex在排版时会想方法把每一列都挤满,于是latex就会自动扩大图片与前后文的间距来填满一列。同理这也是为什么有些公式的前后距离也不一致的原因。:插入的代码不变,只不过调整插入图片的代码在总代码中的位置,比如往后放,此时图片会出现在该页的其他位置,这是没关系的!出现了图片和上下文间距过大的问题,但是前面几页我也用的这个命令,就没有出现这个问题。等命令来强制修改间距,但是我发现没用,要么是缩减效果不明显,要不是直接穿模。._latex调整图片与图片的距离没有反应

Oracle 11g 测试ogg中断之后,重新同步操作-程序员宅基地

文章浏览阅读445次。测试ogg中断之后,重新同步操作2018-06-07 17:11 779 1 原创 GoldenGate 本文链接:https://www.cndba.cn/leo1990/article/28391.测试ogg中断之后,重新同步操作1.1.关闭源端抽取进程GGSCI (cndba) 65> info allProgram Status Grou..._start replicat rep1, begin

QT——实现简易计算器_qt简易计算器加减乘除-程序员宅基地

文章浏览阅读2.2k次,点赞3次,收藏35次。查看原文请点击这里1.用户界面类设计需要使用QWidget组件作为顶层窗口,QLineEdit组件作为输入框,QPsuhButton作为按钮1.1 在代码里处理按键消息时,需要处理下用户输入的格式(方便逻辑模块计算)1)匹配括号成对出现,左括号必然先于右括号出现当有左括号出现时,则status++当有右括号出现时,并且status!=0时,则右括号有效,并status–2)判断每个按键是否合法数字前面不能为:右括号比如:10+3)5*2 //出错,数字5前面不能_qt简易计算器加减乘除