VTK编译

一、VTK 在 Linux 下的编译

准备工作

在开始编译 VTK 之前,请确保您的 Linux 系统已安装以下依赖项:

bash

sudo apt-get update
sudo apt-get install -y build-essential cmake cmake-curses-gui 
    libxt-dev libgl1-mesa-dev libglu1-mesa-dev 
    libx11-dev libxmu-dev libxi-dev libtbb-dev 
    freeglut3-dev libopenmpi-dev

获取 VTK 源代码

您可以通过以下方式获取 VTK 源代码:

方法1:从 Git 仓库克隆(推荐)

bash

git clone https://gitlab.kitware.com/vtk/vtk.git
cd vtk
git checkout v9.2.6  # 切换到稳定版本,可选

方法2:下载源码包

从 VTK 官方网站 下载最新版本的源代码压缩包,然后解压:

bash

wget https://www.vtk.org/files/release/9.2/VTK-9.2.6.tar.gz
tar -xzvf VTK-9.2.6.tar.gz
cd VTK-9.2.6

配置编译选项

创建一个构建目录并运行 CMake 进行配置:

bash

mkdir build
cd build
ccmake ..  # 或者使用 cmake-gui 或 cmake ..

常用编译选项(在 ccmake 界面中按 t 可查看高级选项):

CMAKE_BUILD_TYPE=Release          # 发布模式
VTK_GROUP_ENABLE_Qt=YES           # 如果需要 Qt 支持
VTK_MODULE_ENABLE_VTK_IOFFMPEG=YES # FFMPEG 支持
VTK_MODULE_ENABLE_VTK_IOGDAL=YES   # GDAL 支持
VTK_MODULE_ENABLE_VTK_IOPDAL=YES   # PDAL 支持
VTK_WRAP_PYTHON=ON                # Python 绑定
BUILD_SHARED_LIBS=ON              # 构建共享库

按 c 配置,然后按 g 生成 Makefile。

编译和安装

配置完成后,开始编译:

bash

make -j$(nproc)  # 使用所有可用核心进行编译

编译完成后安装:

bash

sudo make install

默认安装路径是 /usr/local,您可以通过设置 CMAKE_INSTALL_PREFIX 来更改安装路径。

环境配置

安装完成后,需要配置环境变量:

bash

echo 'export VTK_DIR=/usr/local/lib/cmake/vtk-9.2' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

验证安装

创建一个简单的测试程序验证 VTK 是否安装成功:

cpp

// test_vtk.cpp
#include <vtkVersion.h>
#include <vtkSmartPointer.h>
#include <vtkSphereSource.h>

int main() {
    auto sphere = vtkSmartPointer<vtkSphereSource>::New();
    sphere->Update();
    std::cout << "VTK version: " << vtkVersion::GetVTKVersion() << std::endl;
    return 0;
}

编译测试程序:

bash

g++ test_vtk.cpp -o test_vtk $(pkg-config --cflags --libs vtk)
./test_vtk

如果输出 VTK 版本信息,则说明安装成功。

常见问题解决

1. 找不到 OpenGL 头文件

bash

sudo apt-get install mesa-common-dev libgl1-mesa-dev

2. Qt 支持问题

如果需要 Qt 支持,请先安装 Qt 开发包:

bash

sudo apt-get install qt5-default qttools5-dev

然后在 CMake 配置中启用 Qt 支持:

VTK_GROUP_ENABLE_Qt=YES

3. Python 绑定问题

确保已安装 Python 开发包:

bash

sudo apt-get install python3-dev

然后在 CMake 中启用 Python 绑定:

VTK_WRAP_PYTHON=ON

4. 多版本 VTK 共存

如果需要多个 VTK 版本共存,可以在不同的目录中安装不同版本,并通过设置 VTK_DIR 环境变量来切换。

卸载 VTK

如果需要卸载 VTK:

bash

cd build  # 进入之前编译的目录
sudo make uninstall

或者手动删除安装目录中的文件(通常是 /usr/local/include/vtk-* 和 /usr/local/lib/libvtk*)。

二、VTK 在 windows下的编译

准备工作

1. 安装必要工具

Visual Studio:推荐使用 VS2019 或 VS2022(社区版即可)

CMake:从 CMake官网 下载安装(≥3.12版本)

Git:从 Git官网 下载安装

可选工具

Qt(如果需要 Qt 支持)

Python(如果需要 Python 绑定)

2. 安装依赖项

以管理员身份打开 PowerShell 或命令提示符,安装必要组件:

powershell

# 使用 vcpkg 安装依赖(推荐)
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
.ootstrap-vcpkg.bat
.vcpkg integrate install
.vcpkg install eigen3 ffmpeg hdf5 libxml2

获取 VTK 源代码

方法1:从 Git 克隆(推荐)

powershell

git clone https://gitlab.kitware.com/vtk/vtk.git
cd vtk
git checkout v9.2.6  # 切换到稳定版本

方法2:下载源码包

从 VTK 官网 下载 ZIP 包并解压。

使用 CMake 配置

打开 CMake GUI

设置源代码路径(VTK 源码目录)

设置构建路径(如 VTK/build

点击 “Configure” 按钮

选择生成器(Generator):

Visual Studio 16 2019(对应 VS2019)

Visual Studio 17 2022(对应 VS2022)

选择平台(x64 推荐)

重要配置选项

在 CMake 界面中配置以下选项:

CMAKE_BUILD_TYPE=Release          # 发布模式
VTK_GROUP_ENABLE_Qt=YES           # 如果需要 Qt 支持
VTK_WRAP_PYTHON=ON               # 如果需要 Python 绑定
BUILD_SHARED_LIBS=ON             # 构建动态库(推荐)
VTK_MODULE_ENABLE_VTK_IOFFMPEG=YES # FFMPEG 支持
VTK_MODULE_ENABLE_VTK_IOGDAL=YES  # GDAL 支持
VTK_MODULE_ENABLE_VTK_ViewsQt=YES # Qt 视图支持

如果使用 vcpkg 安装的依赖,添加以下参数:

-DCMAKE_TOOLCHAIN_FILE=[vcpkg根目录]/scripts/buildsystems/vcpkg.cmake

点击 “Generate” 生成解决方案。

编译 VTK

打开生成的 VTK.sln(在 build 目录中)

在 Visual Studio 中:

选择配置(Release/Debug)

在解决方案资源管理器中右键 “ALL_BUILD” → “生成”

或者使用命令行:

powershell

cd build
cmake --build . --config Release --parallel 8

安装 VTK

在 Visual Studio 中:

右键 “INSTALL” → “生成”

或使用命令行:

powershell

cmake --install . --prefix "C:VTKinstall" --config Release

环境配置

将以下路径添加到系统环境变量:

将 C:VTKinstallin 添加到 PATH

添加 VTK_DIR=C:VTKinstalllibcmakevtk-9.2

验证安装

创建测试项目验证:

cpp

// test_vtk.cpp
#include <vtkVersion.h>
#include <vtkSmartPointer.h>
#include <vtkSphereSource.h>
#include <iostream>

int main() {
    auto sphere = vtkSmartPointer<vtkSphereSource>::New();
    sphere->Update();
    std::cout << "VTK version: " << vtkVersion::GetVTKVersion() << std::endl;
    return 0;
}

CMakeLists.txt:

cmake

cmake_minimum_required(VERSION 3.12)
project(TestVTK)

find_package(VTK REQUIRED)
include(${VTK_USE_FILE})

add_executable(test_vtk test_vtk.cpp)
target_link_libraries(test_vtk ${VTK_LIBRARIES})

常见问题解决

1. 找不到 Python

确保 Python 已安装并在 CMake 中正确设置:

PYTHON_EXECUTABLE=C:/Python39/python.exe
PYTHON_INCLUDE_DIR=C:/Python39/include
PYTHON_LIBRARY=C:/Python39/libs/python39.lib

2. Qt 相关错误

安装 Qt 并设置路径:

Qt5_DIR=C:/Qt/5.15.2/msvc2019_64/lib/cmake/Qt5

3. 链接错误

确保所有库使用相同的运行时库(MD/MDd 对应 Release/Debug)。

4. 使用 vcpkg 简化安装

powershell

.vcpkg install vtk[qt,ffmpeg,python]

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
抙抙的头像 - 宋马
评论 抢沙发

请登录后发表评论

    暂无评论内容