参考:
安装VTK
详细图文讲解CMake编译VTK,包含详细的编译环境版本
Visual Studio 2022 配置VTK9.3.0
VTK-8.2.0源码编译和初步使用(Cmake+VS2015+Qt5.14.2)
文章目录
- 下载
- 编译
- 编译环境介绍
- 配置CMake信息
- BUILD_SHARED_LIBS控制生成的库是动态链接库(共享库)还是静态库
- VTK_GROUP_ENABLE_QT or VTK_Group_Qt 是否启用对 Qt 的支持
- BUILD_EXAMPLES否编译 VTK 自带的示例代码
- VStudio编译
- CMakeList.txt解压编译
下载
VTK下载链接:https://vtk.org/download/
感觉windows下zip更方便通用一些,新版本没有zip压缩包,所以下的如图所示版本VTK-8.2.0.zip
编译
编译环境介绍
工具名称 | 版本 | 下载地址 |
---|---|---|
系统环境 | win 10 | - |
CMake | cmake-3.23.0-rc5-windows-x86_64.msi | https://github.com/Kitware/CMake/releases/tag/v3.23.0-rc5 |
VTK | VTK-8.2.0.zip | https://vtk.org/download/ |
VIsual Studio | 2022 | https://visualstudio.microsoft.com/downloads/ |
配置CMake信息
创建文件夹
文件夹 | 存放文件 |
---|---|
source | VTK 源码的解压后的文件 |
build | VS 生成的 VTK 库,如:include、lib、dll |
vtk_sln | VTK 源码的工程目录 |
选择vtk源码和生成vtk工程文件的目录。
我把下载之后解压的源码拷贝到上图那个路径下了
选择自己vs编译平台的版本信息后,点击左下方的Configure。
Configure等待中。
BUILD_SHARED_LIBS控制生成的库是动态链接库(共享库)还是静态库
设置为ON:当BUILD_SHARED_LIBS 设置为ON时,VTK会编译成动态链接库(DLL,动态共享库)。这种情况下,生成的库文件在运行时需要被加载到程序中,程序本身不包含库的代码。
设置为OFF:当BUILD_SHARED_LIBS 设置为OFF时,VTK会编译成静态库(.lib)。静态库会直接嵌入到最终的可执行文件中,因此在运行时不需要额外的库文件。
默认情况下,BUILD_SHARED_LIBS 通常是开启的。
在search中搜索BUILD_SHARED_LIBS,把搜索结果的Value勾选上。
VTK_GROUP_ENABLE_QT or VTK_Group_Qt 是否启用对 Qt 的支持
作用
- 当设置为 YES 时,VTK 会编译与 Qt 相关的模块,例如 vtkGUISupportQt、vtkViewsQt 等。这些模块允许在 Qt 应用程序中使用 VTK 的可视化功能,例如将 VTK 的渲染窗口嵌入到 Qt 界面中。
- 如果设置为 NO,则不会编译这些与 Qt 相关的模块。
配置方法
- 在使用 CMake 配置 VTK 项目时,找到 VTK_GROUP_ENABLE_QT 选项,并将其值设置为 YES。
- 如果系统中安装了多个版本的 Qt,还需要正确设置 Qt5_DIR 或 Qt6_DIR,以指定要使用的 Qt 版本的路径。
- 在某些情况下,还需要确保系统环境变量中包含 Qt 的安装路径。
注意事项
- 启用 VTK_GROUP_ENABLE_QT 后,可能会出现与 Qt 版本不兼容的问题,因此需要确保安装的 Qt 版本与 VTK 兼容。
- 如果在配置过程中出现错误,可以检查 Qt 的路径是否正确设置,以及是否有其他与 Qt 相关的配置项需要调整。
继续在search中搜索VTK_GROUP_ENABLE_QT,把Value值设置为 “YES”。
我这个版本木有啊
有的有的,需要搜索VTK_Group_Qt,可能我环境变量或者cmake配置里已经包含了qt路径,再次configure+generate直接成功
BUILD_EXAMPLES否编译 VTK 自带的示例代码
作用
- 默认值:
OFF
。 - 开启时:如果设置为
ON
,VTK 的示例代码将被编译,并作为测试添加到 VTK 的测试套件中。这可以帮助开发者快速了解 VTK 的使用方法,但也可能会增加额外的编译时间。 - 关闭时:不编译示例代码,可以缩短编译时间。
配置方法
在使用 CMake 配置 VTK 项目时,找到 BUILD_EXAMPLES
选项,并将其值设置为 ON
或 OFF
。例如:
- 如果需要编译示例代码,勾选该选项。
- 如果不需要编译示例代码,保持默认值即可。
注意事项
- 如果选择编译示例代码,建议在编译前确保系统中已安装必要的依赖项,以避免编译过程中出现错误。
- 编译示例代码可能会增加编译时间,因此可以根据实际需求选择是否启用。
在search中搜索CMAKE_INSTALL_PREFIX,把Value值设置为最后在vtk_sln中生成include、dll、lib的位置。这里以上述位置为例是 “…\vtk\build”
设置完后,点击左下角"Configure"一下。 等待Configure中。
现在第二次Configure之后没有红色了。那直接点Generate。
完成
VStudio编译
只编译release试试
加了qt之后再次生成了一次,全部成功
选择项目INSTALL,生成该项目,得到vtk在Release模式下的lib和dll文件。
非常快就编译成功
CMakeList.txt解压编译
# https://vtk.org/download/
include(ExternalProject)set(VTK_NAME vtk-8.2.0)set(VTK_ROOT ${CMAKE_BINARY_DIR}/thirdparty/${VTK_NAME})
set(VTK_LIB_DIR ${VTK_ROOT}/lib)
set(VTK_INCLUDE_DIR ${VTK_ROOT}/include)set(VTK_CONFIGURE cmake -B ${VTK_ROOT}/src/${VTK_NAME}-build -G "${CMAKE_GENERATOR}" -A x64 -S ${VTK_ROOT}/src/${VTK_NAME} -DCMAKE_INSTALL_PREFIX=${VTK_ROOT} -DVTK_Group_Qt=ON)
set(VTK_MAKE cmake --build ${VTK_ROOT}/src/${VTK_NAME}-build -j --config ${CMAKE_BUILD_TYPE})
set(VTK_INSTALL cmake --build ${VTK_ROOT}/src/${VTK_NAME}-build --target install --config ${CMAKE_BUILD_TYPE})# 查找7z解压工具
find_program(7Z_EXECUTABLE NAMES 7z REQUIRED)
ExternalProject_Add(${VTK_NAME}DOWNLOAD_NAME VTK-8.2.0.zipDOWNLOAD_COMMAND ${7Z_EXECUTABLE} x ${CMAKE_CURRENT_LIST_DIR}/VTK-8.2.0.zip -aoa -o${VTK_ROOT}/srcPREFIX ${VTK_ROOT}CONFIGURE_COMMAND ${VTK_CONFIGURE}BUILD_COMMAND ${VTK_MAKE}INSTALL_COMMAND ${VTK_INSTALL}
)