編譯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的圖片。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM