win10 VS2015 CMake_3.17.1编译VTK_9.0.0的方法

1、下载VTK_9.0.0,下载链接:https://vtk.org/download/

2、将VTK解压至相应位置,建议放在除系统盘的其他盘,因为VTK编译后有好几个G,本文中的目录是D:\Program Files\VTK-9.0.0.rc1

3、在其目录下D:\Program Files\VTK-9.0.0.rc1建立一个文件夹Build用来存放编译后的文件夹内

注意:“Where to build the binaries”下的文件夹路必须与“CMAKE_INSTALL_PREFIX”路径相同,编译后生成的lib文件夹便在此目录下!

编译成功如下图:

4、打开所编译文件如下图所示,检测是否存在lib文件夹,并打开INSTALL

5、将INSTALL设置为启动项,选中“INSTALL”右击鼠标点击“Set as StartUp Project”;

6、菜单栏“Bulid”->“Batch Build”弹出对话框如右图所示,分别勾选INSTALL下Debug与Release,然后点击Build 便可进行Debug和Release下编译生成.lib和dll文件,所需时间长,耐心等待。

7、编译完成后对VTK进行配置:

(1)新建一个工程项目打开"View"->"Other Windows"->"Property Manager"

(2) 在"Property Manager"选择Debug x64右击鼠标新建一个.props,新建一个命名然后再次.props环境下进行VTK配置

(3)在新建的.props右击选择属性弹出如下图所示的对话框,在"C/C++"->"General"->Additional Include Directories下添加如下路径:D:\Program Files\VTK-9.0.0.rc1;D:\Program Files\VTK-9.0.0.rc3\Build\include\vtk-9.0

(4)同样在属性界面打开“Linker”->"General"->Additioanl Library Directories添加以下路径:D:\Program Files\VTK-9.0.0.rc3\Build\lib

(5)同样属性界面"Linker"->"Input"->"Additional Dependencies"添加编译生成的.lib文件,在lib文件夹里新建一个TXT文本,打开TXT文本并写入“DIR *.* /B>result.txt”并将其另存为VTK_9.0.0_generate_lib.bat,然后再其lib文件夹内运行,将会在其文件夹内生成一个result.txt的文本,文本里已经包含所编译生成的.lib文件名,将其拷贝并粘贴在图中所示的位置中。

 贴出VTK_9.0.0所有.lib 文件的名称:

vtkChartsCore-9.0.lib
vtkChartsCore-9.0d.lib
vtkCommonColor-9.0.lib
vtkCommonColor-9.0d.lib
vtkCommonComputationalGeometry-9.0.lib
vtkCommonComputationalGeometry-9.0d.lib
vtkCommonCore-9.0.lib
vtkCommonCore-9.0d.lib
vtkCommonDataModel-9.0.lib
vtkCommonDataModel-9.0d.lib
vtkCommonExecutionModel-9.0.lib
vtkCommonExecutionModel-9.0d.lib
vtkCommonMath-9.0.lib
vtkCommonMath-9.0d.lib
vtkCommonMisc-9.0.lib
vtkCommonMisc-9.0d.lib
vtkCommonSystem-9.0.lib
vtkCommonSystem-9.0d.lib
vtkCommonTransforms-9.0.lib
vtkCommonTransforms-9.0d.lib
vtkDICOMParser-9.0.lib
vtkDICOMParser-9.0d.lib
vtkDomainsChemistry-9.0.lib
vtkDomainsChemistry-9.0d.lib
vtkdoubleconversion-9.0.lib
vtkdoubleconversion-9.0d.lib
vtkexodusII-9.0.lib
vtkexodusII-9.0d.lib
vtkexpat-9.0.lib
vtkexpat-9.0d.lib
vtkFiltersAMR-9.0.lib
vtkFiltersAMR-9.0d.lib
vtkFiltersCore-9.0.lib
vtkFiltersCore-9.0d.lib
vtkFiltersExtraction-9.0.lib
vtkFiltersExtraction-9.0d.lib
vtkFiltersFlowPaths-9.0.lib
vtkFiltersFlowPaths-9.0d.lib
vtkFiltersGeneral-9.0.lib
vtkFiltersGeneral-9.0d.lib
vtkFiltersGeneric-9.0.lib
vtkFiltersGeneric-9.0d.lib
vtkFiltersGeometry-9.0.lib
vtkFiltersGeometry-9.0d.lib
vtkFiltersHybrid-9.0.lib
vtkFiltersHybrid-9.0d.lib
vtkFiltersHyperTree-9.0.lib
vtkFiltersHyperTree-9.0d.lib
vtkFiltersImaging-9.0.lib
vtkFiltersImaging-9.0d.lib
vtkFiltersModeling-9.0.lib
vtkFiltersModeling-9.0d.lib
vtkFiltersParallel-9.0.lib
vtkFiltersParallel-9.0d.lib
vtkFiltersParallelImaging-9.0.lib
vtkFiltersParallelImaging-9.0d.lib
vtkFiltersPoints-9.0.lib
vtkFiltersPoints-9.0d.lib
vtkFiltersProgrammable-9.0.lib
vtkFiltersProgrammable-9.0d.lib
vtkFiltersSelection-9.0.lib
vtkFiltersSelection-9.0d.lib
vtkFiltersSMP-9.0.lib
vtkFiltersSMP-9.0d.lib
vtkFiltersSources-9.0.lib
vtkFiltersSources-9.0d.lib
vtkFiltersStatistics-9.0.lib
vtkFiltersStatistics-9.0d.lib
vtkFiltersTexture-9.0.lib
vtkFiltersTexture-9.0d.lib
vtkFiltersTopology-9.0.lib
vtkFiltersTopology-9.0d.lib
vtkFiltersVerdict-9.0.lib
vtkFiltersVerdict-9.0d.lib
vtkfreetype-9.0.lib
vtkfreetype-9.0d.lib
vtkGeovisCore-9.0.lib
vtkGeovisCore-9.0d.lib
vtkgl2ps-9.0.lib
vtkgl2ps-9.0d.lib
vtkglew-9.0.lib
vtkglew-9.0d.lib
vtkhdf5-9.0.lib
vtkhdf5-9.0d.lib
vtkhdf5_hl-9.0.lib
vtkhdf5_hl-9.0d.lib
vtkImagingColor-9.0.lib
vtkImagingColor-9.0d.lib
vtkImagingCore-9.0.lib
vtkImagingCore-9.0d.lib
vtkImagingFourier-9.0.lib
vtkImagingFourier-9.0d.lib
vtkImagingGeneral-9.0.lib
vtkImagingGeneral-9.0d.lib
vtkImagingHybrid-9.0.lib
vtkImagingHybrid-9.0d.lib
vtkImagingMath-9.0.lib
vtkImagingMath-9.0d.lib
vtkImagingMorphological-9.0.lib
vtkImagingMorphological-9.0d.lib
vtkImagingSources-9.0.lib
vtkImagingSources-9.0d.lib
vtkImagingStatistics-9.0.lib
vtkImagingStatistics-9.0d.lib
vtkImagingStencil-9.0.lib
vtkImagingStencil-9.0d.lib
vtkInfovisCore-9.0.lib
vtkInfovisCore-9.0d.lib
vtkInfovisLayout-9.0.lib
vtkInfovisLayout-9.0d.lib
vtkInteractionImage-9.0.lib
vtkInteractionImage-9.0d.lib
vtkInteractionStyle-9.0.lib
vtkInteractionStyle-9.0d.lib
vtkInteractionWidgets-9.0.lib
vtkInteractionWidgets-9.0d.lib
vtkIOAMR-9.0.lib
vtkIOAMR-9.0d.lib
vtkIOAsynchronous-9.0.lib
vtkIOAsynchronous-9.0d.lib
vtkIOCityGML-9.0.lib
vtkIOCityGML-9.0d.lib
vtkIOCore-9.0.lib
vtkIOCore-9.0d.lib
vtkIOEnSight-9.0.lib
vtkIOEnSight-9.0d.lib
vtkIOExodus-9.0.lib
vtkIOExodus-9.0d.lib
vtkIOExport-9.0.lib
vtkIOExport-9.0d.lib
vtkIOExportGL2PS-9.0.lib
vtkIOExportGL2PS-9.0d.lib
vtkIOExportPDF-9.0.lib
vtkIOExportPDF-9.0d.lib
vtkIOGeometry-9.0.lib
vtkIOGeometry-9.0d.lib
vtkIOImage-9.0.lib
vtkIOImage-9.0d.lib
vtkIOImport-9.0.lib
vtkIOImport-9.0d.lib
vtkIOInfovis-9.0.lib
vtkIOInfovis-9.0d.lib
vtkIOLegacy-9.0.lib
vtkIOLegacy-9.0d.lib
vtkIOLSDyna-9.0.lib
vtkIOLSDyna-9.0d.lib
vtkIOMINC-9.0.lib
vtkIOMINC-9.0d.lib
vtkIOMotionFX-9.0.lib
vtkIOMotionFX-9.0d.lib
vtkIOMovie-9.0.lib
vtkIOMovie-9.0d.lib
vtkIONetCDF-9.0.lib
vtkIONetCDF-9.0d.lib
vtkIOOggTheora-9.0.lib
vtkIOOggTheora-9.0d.lib
vtkIOParallel-9.0.lib
vtkIOParallel-9.0d.lib
vtkIOParallelXML-9.0.lib
vtkIOParallelXML-9.0d.lib
vtkIOPLY-9.0.lib
vtkIOPLY-9.0d.lib
vtkIOSegY-9.0.lib
vtkIOSegY-9.0d.lib
vtkIOSQL-9.0.lib
vtkIOSQL-9.0d.lib
vtkIOTecplotTable-9.0.lib
vtkIOTecplotTable-9.0d.lib
vtkIOVeraOut-9.0.lib
vtkIOVeraOut-9.0d.lib
vtkIOVideo-9.0.lib
vtkIOVideo-9.0d.lib
vtkIOXML-9.0.lib
vtkIOXML-9.0d.lib
vtkIOXMLParser-9.0.lib
vtkIOXMLParser-9.0d.lib
vtkjpeg-9.0.lib
vtkjpeg-9.0d.lib
vtkjsoncpp-9.0.lib
vtkjsoncpp-9.0d.lib
vtklibharu-9.0.lib
vtklibharu-9.0d.lib
vtklibproj-9.0.lib
vtklibproj-9.0d.lib
vtklibxml2-9.0.lib
vtklibxml2-9.0d.lib
vtkloguru-9.0.lib
vtkloguru-9.0d.lib
vtklz4-9.0.lib
vtklz4-9.0d.lib
vtklzma-9.0.lib
vtklzma-9.0d.lib
vtkmetaio-9.0.lib
vtkmetaio-9.0d.lib
vtknetcdf-9.0.lib
vtknetcdf-9.0d.lib
vtkogg-9.0.lib
vtkogg-9.0d.lib
vtkParallelCore-9.0.lib
vtkParallelCore-9.0d.lib
vtkParallelDIY-9.0.lib
vtkParallelDIY-9.0d.lib
vtkpng-9.0.lib
vtkpng-9.0d.lib
vtkpugixml-9.0.lib
vtkpugixml-9.0d.lib
vtkRenderingAnnotation-9.0.lib
vtkRenderingAnnotation-9.0d.lib
vtkRenderingContext2D-9.0.lib
vtkRenderingContext2D-9.0d.lib
vtkRenderingCore-9.0.lib
vtkRenderingCore-9.0d.lib
vtkRenderingFreeType-9.0.lib
vtkRenderingFreeType-9.0d.lib
vtkRenderingGL2PSOpenGL2-9.0.lib
vtkRenderingGL2PSOpenGL2-9.0d.lib
vtkRenderingImage-9.0.lib
vtkRenderingImage-9.0d.lib
vtkRenderingLabel-9.0.lib
vtkRenderingLabel-9.0d.lib
vtkRenderingLOD-9.0.lib
vtkRenderingLOD-9.0d.lib
vtkRenderingOpenGL2-9.0.lib
vtkRenderingOpenGL2-9.0d.lib
vtkRenderingSceneGraph-9.0.lib
vtkRenderingSceneGraph-9.0d.lib
vtkRenderingUI-9.0.lib
vtkRenderingUI-9.0d.lib
vtkRenderingVolume-9.0.lib
vtkRenderingVolume-9.0d.lib
vtkRenderingVolumeOpenGL2-9.0.lib
vtkRenderingVolumeOpenGL2-9.0d.lib
vtkRenderingVtkJS-9.0.lib
vtkRenderingVtkJS-9.0d.lib
vtksqlite-9.0.lib
vtksqlite-9.0d.lib
vtksys-9.0.lib
vtksys-9.0d.lib
vtkTestingRendering-9.0.lib
vtkTestingRendering-9.0d.lib
vtktheora-9.0.lib
vtktheora-9.0d.lib
vtktiff-9.0.lib
vtktiff-9.0d.lib
vtkverdict-9.0.lib
vtkverdict-9.0d.lib
vtkViewsContext2D-9.0.lib
vtkViewsContext2D-9.0d.lib
vtkViewsCore-9.0.lib
vtkViewsCore-9.0d.lib
vtkViewsInfovis-9.0.lib
vtkViewsInfovis-9.0d.lib
vtkWrappingTools-9.0.lib
vtkWrappingTools-9.0d.lib
vtkzlib-9.0.lib
vtkzlib-9.0d.lib

 

(6)此电脑->属性->高级->环境变量->path路径下添加此路径:D:\Program Files\VTK-9.0.0.rc3;D:\Program Files\VTK-9.0.0.rc3\Build\bin;

系统变量->新建->添加变量值:VTK_DIR;变量值添加路径:D:\Program Files\VTK-9.0.0.rc3\Build\include\vtk-9.0

如下图所示:

测试代码 

#include <vtkActor.h>
#include <vtkCamera.h>
#include <vtkCylinderSource.h>
#include <vtkNamedColors.h>
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkSmartPointer.h>

#include <array>

#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2); //未使用cmake生成的项目需要加
VTK_MODULE_INIT(vtkInteractionStyle);//未使用cmake生成的项目需要加

int main()
{//hello vtk程序

	vtkSmartPointer<vtkNamedColors> colors =
		vtkSmartPointer<vtkNamedColors>::New();

	std::array<unsigned char, 4> bkg{ { 26, 51, 102, 255 } };
	colors->SetColor("BkgColor", bkg.data());

	vtkSmartPointer<vtkCylinderSource> cylinder =
		vtkSmartPointer<vtkCylinderSource>::New();
	cylinder->SetResolution(8);

	vtkSmartPointer<vtkPolyDataMapper> cylinderMapper =
		vtkSmartPointer<vtkPolyDataMapper>::New();
	cylinderMapper->SetInputConnection(cylinder->GetOutputPort());

	vtkSmartPointer<vtkActor> cylinderActor = vtkSmartPointer<vtkActor>::New();
	cylinderActor->SetMapper(cylinderMapper);
	cylinderActor->GetProperty()->SetColor(
		colors->GetColor4d("Tomato").GetData());
	cylinderActor->RotateX(30.0);
	cylinderActor->RotateY(-45.0);

	vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
	renderer->AddActor(cylinderActor);
	renderer->SetBackground(colors->GetColor3d("BkgColor").GetData());

	renderer->ResetCamera();
	renderer->GetActiveCamera()->Zoom(1.5);

	vtkSmartPointer<vtkRenderWindow> renderWindow =
		vtkSmartPointer<vtkRenderWindow>::New();
	renderWindow->SetSize(300, 300);
	renderWindow->AddRenderer(renderer);
	renderWindow->SetWindowName("Cylinder");

	vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
		vtkSmartPointer<vtkRenderWindowInteractor>::New();
	renderWindowInteractor->SetRenderWindow(renderWindow);

	renderWindow->Render();
	renderWindowInteractor->Start();
	return 0;

}

 

参考博文:

1、https://blog.csdn.net/Gordon_Wei/article/details/102955924

 

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值