windows和linux下VTK7.0.0的配置

来源:互联网 发布:mac 装win10 鼠标右键 编辑:程序博客网 时间:2024/06/06 05:23

开发环境Windows 7VS2013Ubuntu14.04 VTK7.0.0cmake

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.libuser32.libgdi32.libwinspool.libshell32.libole32.liboleaut32.libuuid.libcomdlg32.libadvapi32.libcomctl32.libvfw32.libws2_32.libwsock32.libopengl32.libvtkChartsCore-7.0.libvtkCommonColor-7.0.libvtkCommonComputationalGeometry-7.0.libvtkCommonCore-7.0.libvtkCommonDataModel-7.0.libvtkCommonExecutionModel-7.0.libvtkCommonMath-7.0.libvtkCommonMisc-7.0.libvtkCommonSystem-7.0.libvtkCommonTransforms-7.0.libvtkDICOMParser-7.0.libvtkDomainsChemistry-7.0.libvtkDomainsChemistryOpenGL2-7.0.libvtkFiltersAMR-7.0.libvtkFiltersCore-7.0.libvtkFiltersExtraction-7.0.libvtkFiltersFlowPaths-7.0.libvtkFiltersGeneral-7.0.libvtkFiltersGeneric-7.0.libvtkFiltersGeometry-7.0.libvtkFiltersHybrid-7.0.libvtkFiltersHyperTree-7.0.libvtkFiltersImaging-7.0.libvtkFiltersModeling-7.0.libvtkFiltersParallel-7.0.libvtkFiltersParallelImaging-7.0.libvtkFiltersProgrammable-7.0.libvtkFiltersSMP-7.0.libvtkFiltersSelection-7.0.libvtkFiltersSources-7.0.libvtkFiltersStatistics-7.0.libvtkFiltersTexture-7.0.libvtkFiltersVerdict-7.0.libvtkGeovisCore-7.0.libvtkIOAMR-7.0.libvtkIOCore-7.0.libvtkIOEnSight-7.0.libvtkIOExodus-7.0.libvtkIOExport-7.0.libvtkIOGeometry-7.0.libvtkIOImage-7.0.libvtkIOImport-7.0.libvtkIOInfovis-7.0.libvtkIOLSDyna-7.0.libvtkIOLegacy-7.0.libvtkIOMINC-7.0.libvtkIOMovie-7.0.libvtkIONetCDF-7.0.libvtkIOPLY-7.0.libvtkIOParallel-7.0.libvtkIOParallelXML-7.0.libvtkIOSQL-7.0.libvtkIOVideo-7.0.libvtkIOXML-7.0.libvtkIOXMLParser-7.0.libvtkImagingColor-7.0.libvtkImagingCore-7.0.libvtkImagingFourier-7.0.libvtkImagingGeneral-7.0.libvtkImagingHybrid-7.0.libvtkImagingMath-7.0.libvtkImagingMorphological-7.0.libvtkImagingSources-7.0.libvtkImagingStatistics-7.0.libvtkImagingStencil-7.0.libvtkInfovisCore-7.0.libvtkInfovisLayout-7.0.libvtkInteractionImage-7.0.libvtkInteractionStyle-7.0.libvtkInteractionWidgets-7.0.libvtkLocalExample-7.0.libvtkNetCDF-7.0.libvtkNetCDF_cxx-7.0.libvtkParallelCore-7.0.libvtkRenderingAnnotation-7.0.libvtkRenderingContext2D-7.0.libvtkRenderingContextOpenGL2-7.0.libvtkRenderingCore-7.0.libvtkRenderingFreeType-7.0.libvtkRenderingImage-7.0.libvtkRenderingLOD-7.0.libvtkRenderingLabel-7.0.libvtkRenderingOpenGL2-7.0.libvtkRenderingVolume-7.0.libvtkRenderingVolumeOpenGL2-7.0.libvtkViewsContext2D-7.0.libvtkViewsCore-7.0.libvtkViewsInfovis-7.0.libvtkalglib-7.0.libvtkexoIIc-7.0.libvtkexpat-7.0.libvtkfreetype-7.0.libvtkglew-7.0.libvtkhdf5-7.0.libvtkhdf5_hl-7.0.libvtkjpeg-7.0.libvtkjsoncpp-7.0.libvtklibxml2-7.0.libvtkmetaio-7.0.libvtkmyCommon.libvtkmyImaging.libvtkmyUnsorted.libvtkoggtheora-7.0.libvtkpng-7.0.libvtkproj4-7.0.libvtksqlite-7.0.libvtksys-7.0.libvtktiff-7.0.libvtkverdict-7.0.libvtkzlib-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等基本软件需要安装

  • 剩下的直接按照这个教程来就行。ccmake运行时会提示要install哪个安装包,按照提示来就行,教程链接在这:http://www.linuxdiyf.com/linux/21391.html
  • 在ccmake时,可能会提示没有opengl相关的宏,按照这篇文章http://blog.csdn.net/acidgl8757/article/details/9383915安装opengl相关库即可。
  • ccmake之后,不报错时,还需要cmake ../,然后make, sudo make install。
0 0
原创粉丝点击