历时四天终于完全装好了VTK,过程及其痛苦快自闭了,感觉所有能遇到的问题都让我遇到了,写一下遇到的问题希望能帮到有用的人;
安装前准备:
vtk7.1.1官网下载地址:https://vtk.org/files/release/7.1/VTK-7.1.1.zip
vtkData7.1.1官网下载地址:https://vtk.org/files/release/7.1/VTKData-7.1.1.zip
cmake官网下载地址:https://cmake.org/download/
一:安装VTK
1)将VTK源代码包解压到E:\Program Files\VTK目录下。
2)将VTK数据包解压到E:\Program Files\VTK\VTKData目录下。
注:VTK目录和VTKData目录是自己创建的,可以自行指定位置,可以是任何名字,但是最好不要使用中文命名,以免出现问题。
二:安装CMAKE
CMake傻瓜式安装
如果想深入了解CMake,可以选择将其添加到系统路径,但是即使现在不选择,以后也可以在PATH环境变量中手动添加。
选择:Add CMake to the system PATH for all users这一项
安装完成后,打开CMake,期主界面如图所示。
1)在Where is the source code:处,单击按钮Browse Source,指定VTK源代码所在路径,这里应该是D:\Program Files\VTK。
2)在Where to build the binaties:处,单击按钮Browse Build,指定将要生成工程的路径,这里选择D:\Program Files\VTK\bin(bin是新建的目录)。
3)然后单击按钮Configure,打开如图所示的编译器选择对话框。
这里要注意选择的工程:我之前选的是vs 15 2017
但是在生成VTK时,最后总是出现“cmd.exe 返回为1”
之后我将它改成了vs 15 2017 win64 但是我也遇到了问题,跟这个博主遇到的一样:
VTK VS2010 WIN7 64 - shenlan282的笔记 - CSDN博客 https://blog.csdn.net/cgcoder/article/details/8262232
选Visual Studio 10编译器(这里即使是win7 64位的也建议不要选VS2010
W64,不然你就等着悲剧吧!!0XC000007B这个牛逼的错误等着你!!劳资装了4天都这样选的,MLGBD),然后cmake会描所需要的文件。
但是我把 0XC000007B 这个nb的错误解决了,方法就是将之后debug下的生成的dll全部放在C:\window\system32和systemWow64中,我不知道具体放在哪个有用,反正我都放就好了
单击Finish按钮关闭编译器选择对话框,即可启动配置。这是按钮Gonfigure变成按钮Stop,随时可以中断配置。
会出来红色的扫描结果。
CMAKE_INSTALL_PREFIX为默认安装路径,也是INSTALL工程生成的地方,系统默认为C:\Program Files\VTK。
Build推荐勾选如下:
修改完成后重新Configure,直到没有红色为止,然后Generate。如下图所示
3、生成VTK
在D:\Program Files\VTK\bin目录下,找到“VTK.sln”解决方案文件,双击这个文件,用vs打开它。右键点击ALL_BUILD,选择重新生成,该步骤耗时较长,我花了一个小时……
第一次生成后会有一些链接错误,比如打不开….\lib\Debug下的vtkViewsInfovisPython27D-7.1.lib文件,可能是由于生成顺序导致,因此再生成一遍,可以减少一部分错误。
我在没有将cmake 生成的vs工程从vs 15 2017改成vs 15 2017 win64 之前一直是:
cmd.exe”已退出,代码为1
网上找了很多解决方案也不好用,所以换成了vs 15 2017 win64
生成成功后找到INSTALL项目,右击选择仅用于项目->仅生成INSTALL,会在CMAKE_INSTALL_PREFIX设置的目录下生成include目录,包含VTK需要的头文件。
在这步生成INSTALL是,就出现了一个问题,错误如下。
解决方案:将VS2013设置为管理员权限运行
4、运行Examples
完成之后,建立一个win32控制台应用程序来测试安装编译结果。
打开vs2017,新建一个win32控制台应用程序。创建完成之后,向项目中添加一个cpp文件。
由于目前使用的是Debug版本编译,所以在此我们只需要去设置Debug下的配置文件。
网上是双击打开Microsoft.Cpp.win32.User。
我是单独配了一个属性表
在包含目录中添加VTK生成目录下的include文件夹,这里是C:\Program Files\VTK\include\vtk-7.1。
在库目录中添加VTK生成目录下的lib文件夹,这里是C:\Program Files\VTK\lib。
在Microsoft.Cpp.win32.User的属性页面,打开链接器,选择输入。添加附加依赖项
注意附加依赖项要根据自己的版本添加,我之前安装的是vtk7.1.1结果复制的是别人vtk7.0的哭瞎
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
vtkalglib-7.1.lib
vtkChartsCore-7.1.lib
vtkCommonColor-7.1.lib
vtkCommonComputationalGeometry-7.1.lib
vtkCommonCore-7.1.lib
vtkCommonDataModel-7.1.lib
vtkCommonExecutionModel-7.1.lib
vtkCommonMath-7.1.lib
vtkCommonMisc-7.1.lib
vtkCommonSystem-7.1.lib
vtkCommonTransforms-7.1.lib
vtkDICOMParser-7.1.lib
vtkDomainsChemistry-7.1.lib
vtkDomainsChemistryOpenGL2-7.1.lib
vtkexoIIc-7.1.lib
vtkexpat-7.1.lib
vtkFiltersAMR-7.1.lib
vtkFiltersCore-7.1.lib
vtkFiltersExtraction-7.1.lib
vtkFiltersFlowPaths-7.1.lib
vtkFiltersGeneral-7.1.lib
vtkFiltersGeneric-7.1.lib
vtkFiltersGeometry-7.1.lib
vtkFiltersHybrid-7.1.lib
vtkFiltersHyperTree-7.1.lib
vtkFiltersImaging-7.1.lib
vtkFiltersModeling-7.1.lib
vtkFiltersParallel-7.1.lib
vtkFiltersParallelImaging-7.1.lib
vtkFiltersPoints-7.1.lib
vtkFiltersProgrammable-7.1.lib
vtkFiltersSelection-7.1.lib
vtkFiltersSMP-7.1.lib
vtkFiltersSources-7.1.lib
vtkFiltersStatistics-7.1.lib
vtkFiltersTexture-7.1.lib
vtkFiltersVerdict-7.1.lib
vtkfreetype-7.1.lib
vtkGeovisCore-7.1.lib
vtkgl2ps-7.1.lib
vtkglew-7.1.lib
vtkhdf5_hl-7.1.lib
vtkhdf5-7.1.lib
vtkImagingColor-7.1.lib
vtkImagingCore-7.1.lib
vtkImagingFourier-7.1.lib
vtkImagingGeneral-7.1.lib
vtkImagingHybrid-7.1.lib
vtkImagingMath-7.1.lib
vtkImagingMorphological-7.1.lib
vtkImagingSources-7.1.lib
vtkImagingStatistics-7.1.lib
vtkImagingStencil-7.1.lib
vtkInfovisCore-7.1.lib
vtkInfovisLayout-7.1.lib
vtkInteractionImage-7.1.lib
vtkInteractionStyle-7.1.lib
vtkInteractionWidgets-7.1.lib
vtkIOAMR-7.1.lib
vtkIOCore-7.1.lib
vtkIOEnSight-7.1.lib
vtkIOExodus-7.1.lib
vtkIOExport-7.1.lib
vtkIOGeometry-7.1.lib
vtkIOImage-7.1.lib
vtkIOImport-7.1.lib
vtkIOInfovis-7.1.lib
vtkIOLegacy-7.1.lib
vtkIOLSDyna-7.1.lib
vtkIOMINC-7.1.lib
vtkIOMovie-7.1.lib
vtkIONetCDF-7.1.lib
vtkIOParallel-7.1.lib
vtkIOParallelXML-7.1.lib
vtkIOPLY-7.1.lib
vtkIOSQL-7.1.lib
vtkIOTecplotTable-7.1.lib
vtkIOVideo-7.1.lib
vtkIOXML-7.1.lib
vtkIOXMLParser-7.1.lib
vtkjpeg-7.1.lib
vtkjsoncpp-7.1.lib
vtklibxml2-7.1.lib
vtkLocalExample-7.1.lib
vtkmetaio-7.1.lib
vtkNetCDF_cxx-7.1.lib
vtkNetCDF-7.1.lib
vtkoggtheora-7.1.lib
vtkParallelCore-7.1.lib
vtkpng-7.1.lib
vtkproj4-7.1_d.lib
vtkRenderingAnnotation-7.1.lib
vtkRenderingContext2D-7.1.lib
vtkRenderingContextOpenGL2-7.1.lib
vtkRenderingCore-7.1.lib
vtkRenderingFreeType-7.1.lib
vtkRenderingGL2PSOpenGL2-7.1.lib
vtkRenderingImage-7.1.lib
vtkRenderingLabel-7.1.lib
vtkRenderingLOD-7.1.lib
vtkRenderingOpenGL2-7.1.lib
vtkRenderingVolume-7.1.lib
vtkRenderingVolumeOpenGL2-7.1.lib
vtksqlite-7.1.lib
vtksys-7.1.lib
vtkTestingGenericBridge-7.1.lib
vtkTestingIOSQL-7.1.lib
vtkTestingRendering-7.1.lib
vtktiff-7.1.lib
vtkverdict-7.1.lib
vtkViewsContext2D-7.1.lib
vtkViewsCore-7.1.lib
vtkViewsInfovis-7.1.lib
vtkzlib-7.1.lib
之后开始各种编译报错
第一个错误 无法打开文件“vtkChartsCore-7.0.lib
LINK : fatal error LNK1104: 无法打开文件“vtkChartsCore-7.0.lib”
【分析原因】lib路径输入错误:解决办法将vtk前面加上自己的路径如下:
E:\Program Files\VTK\VTK-7.1.1\bin\lib\Debug\vtkalglib-7.1.lib
第二个错误:就是0XC000007B这个牛逼的错误:
解决方法:就是将bin\bin\debug下的生成的dll全部放在C:\window\system32和sysWow64中,我不知道具体放在哪个有用,反正我都放就好了
我看了很多网上的解决方案,但是都不好用,可能也不适合我,我把这些链接给你们
含vtk64位库的程序运行0xc000007b错误的解决 - EthanMath的专栏 - CSDN博客 https://blog.csdn.net/yysmath/article/details/45418577?locationNum=7
正确解决 应用程序无法正常启动(0xc000007b)的问题 - hellokandy的博客 - CSDN博客 https://blog.csdn.net/hellokandy/article/details/80454038
第三个错误:就是0xC0000005这个错误:
解决方法:在头文件下加入下面三行代码,解决哈哈
#include
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
主要参考文献:
https://blog.csdn.net/jane_yuhui/article/details/51941439
http://www.cnblogs.com/tyw66/p/6942569.html
https://blog.csdn.net/yysmath/article/details/45418577?locationNum=7
https://blog.csdn.net/cgcoder/article/details/8262232
https://blog.csdn.net/wujiahui1207/article/details/70740089
https://blog.csdn.net/u013232740/article/details/50825116