build: VTK 改用 9.6.2(对 Qt6.11 兼容更好), 源码/构建放 D:; 冒烟程序用 Release 预设匹配 Release VTK

This commit is contained in:
gaozheng 2026-06-07 18:41:24 +08:00
parent c76461609a
commit b219dfeae1
2 changed files with 16 additions and 15 deletions

View File

@ -13,7 +13,7 @@
"VCPKG_TARGET_TRIPLET": "x64-windows",
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON",
"CMAKE_PREFIX_PATH": "D:/Qt/6.11.1/msvc2022_64",
"VTK_DIR": "${sourceDir}/external/vtk-install/lib/cmake/vtk-9.3"
"VTK_DIR": "${sourceDir}/external/vtk-install/lib/cmake/vtk-9.6"
}
},
{

View File

@ -99,21 +99,22 @@ CMake 经 `CMAKE_PREFIX_PATH=D:/Qt/6.11.1/msvc2022_64` 找到它(见 §6 预设)
### 5.2 VTK 源码编到 install 前缀(用官方 Qt
```powershell
# 在 x64 Native Tools for VS18 命令行
git clone --depth 1 --branch v9.3.1 https://gitlab.kitware.com/vtk/vtk.git C:\dev\vtk-src
cmake -S C:\dev\vtk-src -B C:\dev\vtk-build -G Ninja `
-D CMAKE_BUILD_TYPE=Release `
-D VTK_GROUP_ENABLE_Qt=YES `
-D VTK_MODULE_ENABLE_VTK_GUISupportQt=YES `
-D Qt6_DIR="D:/Qt/6.11.1/msvc2022_64/lib/cmake/Qt6" `
-D CMAKE_PREFIX_PATH="D:/Qt/6.11.1/msvc2022_64" `
-D BUILD_SHARED_LIBS=ON -D VTK_BUILD_TESTING=OFF -D VTK_BUILD_EXAMPLES=OFF `
-D CMAKE_INSTALL_PREFIX="D:/Git/lanbingtech/geopro/external/vtk-install"
cmake --build C:\dev\vtk-build --target install
实机用 **VTK 9.6.2**(最新稳定,对 Qt 6.11 兼容最好),源码/构建全放 **D:**(C: 仅剩 ~1GB)。脚本见 `external/build_vtk.bat`(已 .gitignore),要点:
```bat
call "<VS>\VC\Auxiliary\Build\vcvars64.bat"
git clone --depth 1 --branch v9.6.2 https://gitlab.kitware.com/vtk/vtk.git D:\dev\vtk-src
cmake -S D:\dev\vtk-src -B D:\dev\vtk-build -G Ninja ^
-D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS=ON ^
-D VTK_GROUP_ENABLE_Qt=YES -D VTK_MODULE_ENABLE_VTK_GUISupportQt=YES ^
-D Qt6_DIR=D:/Qt/6.11.1/msvc2022_64/lib/cmake/Qt6 ^
-D CMAKE_PREFIX_PATH=D:/Qt/6.11.1/msvc2022_64 ^
-D VTK_BUILD_TESTING=OFF -D VTK_BUILD_EXAMPLES=OFF ^
-D CMAKE_INSTALL_PREFIX=D:/Git/lanbingtech/geopro/external/vtk-install
cmake --build D:\dev\vtk-build --target install
```
完成后 `external/vtk-install/lib/cmake/vtk-9.3` 供 `find_package(VTK)`(已在 `CMakePresets.json``VTK_DIR`)。`external/` 已 .gitignore。
> 注:VTK 用 Release 编;Debug app 链 Release VTK 在 Windows 通常可行(VTK 不强依赖 Debug CRT 的 STL 边界),若遇 `/MD` vs `/MDd` 冲突,则再出一份 Debug VTK。spike 阶段确认
完成后 `external/vtk-install/lib/cmake/vtk-9.6` 供 `find_package(VTK)`(已在 `CMakePresets.json``VTK_DIR`)。
> 注:VTK 用 **Release** 编。因此**冒烟程序也用 `msvc-release` 预设构建**,以匹配 Release VTK + Release Qt(避免 `/MD` vs `/MDd` 混链)。需要 Debug 调试 VTK 时再出一份 Debug VTK
---