VTK编译 VS2013+Qt5.3.1+VTK6.3.0_32位
- 环境
- 准备VTK
- 打开Cmake进行配置和生成工程
- 配置VTK
- 可能碰到什么问题
- 参考链接
环境
- Win10 64位
- VS2013 (联网正常安装就好,反正设置了安装位置也是要占C盘很多空间)
- Qt 5.3.1 32位 (qt软件和qt对应vs2013插件,若是安装qt64位,只需下载64位qt软件重装就行,插件不用动,再VS里可以选择用那个版本的qt。这俩都是正常安装)
上述两个qt安装完之后需要添加qt的环境变量 qt\5.3\msvc2013_opengl\bin 。
在VS软件会看到QT5插件,选择里面的Qt Option选项,看里面是否有qt。没有添加重启计算机。
- Cmack (记得安装的时候选择添加环境变量)
上面软件已经安装好了
准备VTK
- 官网下载地址 下载了两个版本的,先只编译6.3版本。
- 在自己本地新建一个文件夹,用于存放官网下载的某个版本解压的两个文件和Cmack之后生成的install工程文件(类似于从源码生成的适应你的平台的setup文件)
- 再新建这个文件用来存放从编译完的工程中提取出来的 .h .dll .lib文件。后面Cmake里会设置它的位置,这个文件的路径对应Cmake里的CMAKE_INSTALL_PREFIX变量
打开Cmake进行配置和生成工程
- 打开Cmake,选择源文件位置和Cmake后生成的项目的位置,点击Configure。
- 之后会让选择用那个平台编译,编译成多少位的。我们选择VS2013,后面啥也不加是32位,加64是64位的,可根据自己需要来选择。
- 之后会出现红的,让自行选择几何选项然后Configure。这里有几个选项:
BUILD_EXAMPLES 编译例子
BUILD_SHARED_LIBIRARES 勾选,此为是否编译动态链接库,选择编译。
BUILD_TESTING 编译测试
CMAKE_INSTALL_PREFIX 这个是编译出那些 .h .dll .lib文件存放的位置,也就是别的电脑想用VTK不经过编译直接拿这个文件就好。默认在C盘,我把它位置改成自己之前新建的那个文件夹。
VTK_Group_Qt 和QT
- 会提示出错
- 把QT版本改成5,同时点击Add Entry添加Qt的安装位置:Name选择CMAKE_PREFIX_PATH(这是固定的变量名称),Type是PATH,Value是Qt的安装位置。再次点Configure。
- 会出现一堆红色,再次点Configure就好了。
- 都变白之后,点击Generate。就好了。这时候会发现之前建立的用于存放Cmake后项目的文件 vtk-6.3.0-bin 里有了一堆。
- 以管理员身份运行VS,打开VTK.sln解决方案。
- 因为当时Cmake的时候选择的是VS2013_32位的,所以这里是32位编译方式,选择64位好像也不会成功。好像需要在Cmake的时候改。先Debug模式下生成解决方案。
- 我这里跳过的两个。。。不知道。。。迷(@_@)
- 编译完成后,对应的Debug库会生成如图所示的文件。
- 如果想把头文件,动态链接库提取出来,提取到之前Cmake设置的 CMAKE_INSTALL_OREFIX对应的文件目录下。则 INSTALL→仅用于项目→仅生成INSTALL。
- 则会在之前设置的那个文件目录VTK2013_32下出现下图文件夹。这就是编译完的库的位置,之后不重新编译,只需要挪动这个库,对应添加环境变量,配置项目里的包含目录,库目录,依赖项就好。
- 在Reslease下 只生成QVTKWidgetPlugun这个工程。在E:\VTK6.3.0\VTK-6.3.0-bin\bin\Release路径下找到QVTKWidgetPlugun.dll文件和E:\VTK6.3.0\VTK-6.3.0-bin\lib\Release路径下找到QVTKWidgetPlugun.lib文件,拷贝到D:\Qt\Qt5.3.1\5.3\msvc2013_opengl\plugins\designer路径下。
- 添加环境变量:把这个路径 E:\VTK2013_32\bin 添加到系统环境变量中。
配置VTK
在工程里配置包含目录、库目录、附加依赖项这三个就好了。
可能碰到什么问题
配置完之后,可能碰到运行测试例子时候,出错:
- error LNK1181: 无法打开输入文件“.obj” 看看链接库里的内容写的对不对。
- error: no override found for :
//slove1#include <vtkAutoInit.h>VTK_MODULE_INIT(vtkRenderingOpenGL);VTK_MODULE_INIT(vtkInteractionStyle);
//slove2#define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingFreeTypeOpenGL,vtkRenderingOpenGL)#define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)
参考链接
VTK图形开发进阶
Error:no override found for “vtkRenderer”/“vtkImageMapper”
【编译好了工程里的配置】VS2013配置ITK4.8.0,VTK6.3.0
【重要重要!!!】VTK6.2&6.3+VS2013+QT5编译配置(从头到尾)
VTK安装 win10+VS2017+VTK8.1.2+QT5.12编译安装
vs2013+vtk6.3.0+Qt5.4.1