• 编译vtk8.1.1 + 在vs2017中配置开发环境


     

    一、准备工作:

    1.下载vtk源码包:下载vtk-8.1.1.zip就够了

    下载地址:https://www.vtk.org/download/

    2.下载cmake

    下载地址:https://cmake.org/download/

     

    二、编译VTK源码:

    1、选择VTK源码路径以及选择编译文件存放路径

    1. 选择VTK解压后的目录(该目录下包含CmakeLists文件)

    1. 自己建一个文件夹用来存放编译产生的文件夹(可以随便建立在任何地方,随便起任何名称。我这里建在VTK的根目录,命名为build)

      最后结果:

    2、点击configure

    弹出对话框:

    Configure之后的结果:

    3、选择需要生成的选项:(我需要的是支持MFC)

    4、点击configur。

    如果有红色,多点几次configure,直到完全变白。

    5、点击Generate。

    三、visual studio编译VTK以及属性表配置:

    这个时候找到build文件夹下的VTK.sln文件。用visual studio打开。

    选择Debug 64

    解决方案中找到ALL_BUILD,右键生成

    生成无误后,同理,找到INSTALL,右键生成。

     

    如果想生成release版本,选择release 64,重复上述操作。

    这个时候就在如下文件夹中生成相应的文件了(.dll .lib等)

    接下来在VS中配置属性表,当然你也可以用Cmake编译,不用配置这些属性。

    包含目录:

    包含库目录:

    添加附加依赖项:(只支持MFC以及OpenGL2,如果不一样请修改)

    vtkalglib-8.1.lib

    vtkChartsCore-8.1.lib

    vtkCommonColor-8.1.lib

    vtkCommonComputationalGeometry-8.1.lib

    vtkCommonCore-8.1.lib

    vtkCommonDataModel-8.1.lib

    vtkCommonExecutionModel-8.1.lib

    vtkCommonMath-8.1.lib

    vtkCommonMisc-8.1.lib

    vtkCommonSystem-8.1.lib

    vtkCommonTransforms-8.1.lib

    vtkDICOMParser-8.1.lib

    vtkDomainsChemistry-8.1.lib

    vtkDomainsChemistryOpenGL2-8.1.lib

    vtkexoIIc-8.1.lib

    vtkexpat-8.1.lib

    vtkFiltersAMR-8.1.lib

    vtkFiltersCore-8.1.lib

    vtkFiltersExtraction-8.1.lib

    vtkFiltersFlowPaths-8.1.lib

    vtkFiltersGeneral-8.1.lib

    vtkFiltersGeneric-8.1.lib

    vtkFiltersGeometry-8.1.lib

    vtkFiltersHybrid-8.1.lib

    vtkFiltersHyperTree-8.1.lib

    vtkFiltersImaging-8.1.lib

    vtkFiltersModeling-8.1.lib

    vtkFiltersParallel-8.1.lib

    vtkFiltersParallelImaging-8.1.lib

    vtkFiltersPoints-8.1.lib

    vtkFiltersProgrammable-8.1.lib

    vtkFiltersSelection-8.1.lib

    vtkFiltersSMP-8.1.lib

    vtkFiltersSources-8.1.lib

    vtkFiltersStatistics-8.1.lib

    vtkFiltersTexture-8.1.lib

    vtkFiltersTopology-8.1.lib

    vtkFiltersVerdict-8.1.lib

    vtkfreetype-8.1.lib

    vtkGeovisCore-8.1.lib

    vtkgl2ps-8.1.lib

    vtkglew-8.1.lib

    vtkhdf5-8.1.lib

    vtkhdf5_hl-8.1.lib

    vtkImagingColor-8.1.lib

    vtkImagingCore-8.1.lib

    vtkImagingFourier-8.1.lib

    vtkImagingGeneral-8.1.lib

    vtkImagingHybrid-8.1.lib

    vtkImagingMath-8.1.lib

    vtkImagingMorphological-8.1.lib

    vtkImagingSources-8.1.lib

    vtkImagingStatistics-8.1.lib

    vtkImagingStencil-8.1.lib

    vtkInfovisCore-8.1.lib

    vtkInfovisLayout-8.1.lib

    vtkInteractionImage-8.1.lib

    vtkInteractionStyle-8.1.lib

    vtkInteractionWidgets-8.1.lib

    vtkIOAMR-8.1.lib

    vtkIOCore-8.1.lib

    vtkIOEnSight-8.1.lib

    vtkIOExodus-8.1.lib

    vtkIOExport-8.1.lib

    vtkIOExportOpenGL2-8.1.lib

    vtkIOGeometry-8.1.lib

    vtkIOImage-8.1.lib

    vtkIOImport-8.1.lib

    vtkIOInfovis-8.1.lib

    vtkIOLegacy-8.1.lib

    vtkIOLSDyna-8.1.lib

    vtkIOMINC-8.1.lib

    vtkIOMovie-8.1.lib

    vtkIONetCDF-8.1.lib

    vtkIOParallel-8.1.lib

    vtkIOParallelXML-8.1.lib

    vtkIOPLY-8.1.lib

    vtkIOSQL-8.1.lib

    vtkIOTecplotTable-8.1.lib

    vtkIOVideo-8.1.lib

    vtkIOXML-8.1.lib

    vtkIOXMLParser-8.1.lib

    vtkjpeg-8.1.lib

    vtkjsoncpp-8.1.lib

    vtklibharu-8.1.lib

    vtklibxml2-8.1.lib

    vtklz4-8.1.lib

    vtkmetaio-8.1.lib

    vtkNetCDF-8.1.lib

    vtknetcdfcpp-8.1.lib

    vtkoggtheora-8.1.lib

    vtkParallelCore-8.1.lib

    vtkpng-8.1.lib

    vtkproj4-8.1.lib

    vtkRenderingAnnotation-8.1.lib

    vtkRenderingContext2D-8.1.lib

    vtkRenderingContextOpenGL2-8.1.lib

    vtkRenderingCore-8.1.lib

    vtkRenderingFreeType-8.1.lib

    vtkRenderingGL2PSOpenGL2-8.1.lib

    vtkRenderingImage-8.1.lib

    vtkRenderingLabel-8.1.lib

    vtkRenderingLOD-8.1.lib

    vtkRenderingOpenGL2-8.1.lib

    vtkRenderingVolume-8.1.lib

    vtkRenderingVolumeOpenGL2-8.1.lib

    vtksqlite-8.1.lib

    vtksys-8.1.lib

    vtktiff-8.1.lib

    vtkverdict-8.1.lib

    vtkViewsContext2D-8.1.lib

    vtkViewsCore-8.1.lib

    vtkViewsInfovis-8.1.lib

    vtkzlib-8.1.lib

     

    添加环境变量:添加生成的bin文件所在路径。不添加环境变量的话会提示缺失xxx.dll文件。

    四、错误及解决方案

    • no override found for '…'

    解决方法:在程序上方加上

    #include <vtkAutoInit.h>

    VTK_MODULE_INIT( vtkRenderingOpenGL2 ); //cmake编译的时候选择的是OpenGL2

    • failed to get wglChoosePixelFormatARB

    failed to get valid pixel format.

    GLEW could not be initialized.

    解决方法:

    查看电脑是否支持OpenGL2以及安装显卡驱动(为这还找了好久的原因)

    四、效果展示:

    附一张利用VTK将显示界面嵌入MFC的图片。

  • 相关阅读:
    UIViewController的View显示在导航栏下面如何解决?
    iOS开发常用之 HUD 弹窗
    IOS window.rootViewController 切换原rootViewController无法释放(问题解决)
    xcode git修改远程仓库地址
    iOS比较好用的第三方框架
    iOS的几种页面跳转方式
    ios-创建根视图控制器的三种方式
    iOS APP的AppDelegate理解
    iOS APP生命周期 和 UIViewController的生命周期
    APP自动化测试—appium教程
  • 原文地址:https://www.cnblogs.com/learnforever/p/9614670.html
Copyright © 2020-2023  润新知