新手上路,不太了解CMake编译,如有错误,请各位大佬多多指点!
一、软件下载
- 源码: 官网( https://vtk.org/download/ )
- Qt: 5.15版本在线安装
- CMake: 3.26.3版本
- tbb
- mpi: msi和exe两个都要下载安装
这些软件下载安装好之后记得在环境变量中配置好相关路径,方便CMake自动查询!
二、CMake构建
1、目录创建
将下载好的源码解压,并在同级目录下创建以下几个文件夹
VTK-9.0.1-build 存放CMake构建的项目
VTK-9.0.1-install-debug 存放编译好的debug库
VTK-9.0.1-install-release 存放编译好的release库
VTK-9.0.1-src 存放源码
2、CMake
(1&2)打开CMake,选择源码路径和构建项目的生成路径
(3)点击一下configure,选择VS版本后,会出现红色高亮警示
(4)然后将CMAKE_INSTALL_PREFIX(VTK编译生成的库文件所在位置)改为前面我们创建的文件夹VTK-9.0.1-install-debug
(5)再次点击configure。
选择vs版本及x64:
3、配置QT
搜索Qt,将Qt相关选项勾选好,改为want
点击configure,会出现类似下图的qt选项,填写好路径之后再次点击configure,没有出现红色高亮即可。(我之前配置过,有些人可能会和我的不一样,还有qt版本什么的选项,按照需求填写即可)
4、配置TBB
VTK提供了一些加速选项,比如cuda等。选择tbb选项( 最快)可以加快vtk中一些类的计算速度,亲测有效。找到VTK选项中的VTK SMP_IMPLEMENTATION TYPE,选择TBB,再点击configure。
配置TBB相关路径,点击configure。
5、配置MPI
MPI目前还不知道怎么用,注意MPI的环境配置即可,不然会报错。步骤和前面一样,不再赘述。只勾选填写VTK和MPI中的相关选项
6、注意事项
按理来说这样配置之后,没有红色高亮即可,但是我在CMake构建好之后,用vs编译的时候报错了,如下。H5timer.c里少了struct rusage的定义,该结构体的定义在9.2.6版本中是放在vtksqlite//shell.c里,但是9.0.1版本里面没有这个shell.c文件。
后来在CMake构建时勾选了VTK中关于hdf5的两个选项,编译成功。目前使用还没有什么问题,有知道原因的大佬可以指点一下QAQ。
三、VS编译
上面步骤configure之后,没有出现红色高亮即可。然后点击generate生成项目,再点击open project打开项目。点击生成,点击批处理:
(1)先勾选ALL_BUILD的release,点击生成。(十几分钟)
(2)运行结束之后,取消ALL_BUILD的release的勾选,只选择INSTALL的release,再次点击生成。
结束之后,VTK-9.0.1-install-debug里面就是realease版本的库,剪切复制到VTK-9.0.1-install-release里。debug的库生成同上。
四、参考
VTK9.1.0在Windows10+VS2019+Qt 5.15.2环境下编译安装以及VTK应用于QT_vtk9安装_isongxw的博客-CSDN博客
Win10系统VS2019+Cmake+vtk_8.2.0环境配置_cmake vtk_wang.chen.xue的博客-CSDN博客