Linux(Ubuntu24.04)源码编译安装VTK7.1.1记录

devtools/2025/1/9 1:27:46/

        VTK(Visualization Toolkit)是一个开源的3D可视化开发工具包,用于开发可视化和图形处理应用程序。VTK提供了一系列的算法和工具,用于创建、渲染和处理复杂的3D图形和数据。VTK由C++编写,并提供了Python、Java和Tcl等语言的接口。它可以在Windows、Linux和macOS等操作系统上运行。

        本次安装是在WSL2的Ubuntu24.04环境下进行。

1、获取v7.1.1版本的VTK源码

        拉取源码时直接指定 -b v7.1.1。

git clone -b v7.1.1 https://github.com/Kitware/VTK

        使用git describe --tags --exact-match HEAD确认当前HEAD指向v7.1.1(tag),如果不是,使用git checkout -b v7.1.1切换。

git describe --tags --exact-match HEAD
v7.1.1

 2、编译安装

        进入VTK目录,创建build文件夹并进入,执行cmake和make,编译成功后install。

cd VTK #进入目录
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DVTK_WRAP_PYTHON=ON -DBUILD_SHARED_LIBS=ON
make -j$(nproc)  # 使用多线程加速编译
sudo make install

3、配置动态链接库

        添加 VTK 的库路径到系统中:

echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf.d/vtk.conf
sudo ldconfig

4、编译过程遇到的问题

4.1 问题1

        如果遇到PythonCore相关的问题,可能是由于conda的python虚拟环境引起的,屏蔽掉conda即可。可将~/.bashrc的conda相关的环境设置都注释掉后,执行source ~/.bashrc,重启或者重新打开一个新的命令框,此时使用的是系统自带的python环境。

4.2 问题2

CMake Error at Rendering/OpenGL2/CMakeLists.txt:202 (message): X11_Xt_LIB could not be found. Required for VTK X lib.

        这个错误消息表明在 CMake 过程中,系统无法找到 X11_Xt_LIB 库,而这个库是 VTK 中处理 X 窗口系统相关功能所必需的。要解决这个问题,需要安装 X11 和 Xt 库。

sudo apt-get install libx11-dev libxt-dev
4.3 问题3

VTK/Wrapping/PythonCore/vtkPythonArgs.cxx:105:25: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive] 105 | a = PyUnicode_AsUTF8(o);

                                                             | ~~~~~~~~~~~~~~~~^~~ | | | const char* 

        这是字符转换问题,不能将const char*转成char*,修改vtkPythonArgs.cxx的105行,将a = PyUnicode_AsUTF8(o);改为a = const_cast<char*>(PyUnicode_AsUTF8(o));

a = const_cast<char*>(PyUnicode_AsUTF8(o));
4.4 编译成功 


http://www.ppmy.cn/devtools/148545.html

相关文章

OpenCV在现代社会中的应用

OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源计算机视觉库&#xff0c;广泛应用于图像处理、计算机视觉以及机器学习领域。随着科技的发展&#xff0c;OpenCV在现代社会中扮演着越来越重要的角色&#xff0c;尤其在以下五个方向中取得了显著的…

java学习 单例模式

一.设计模式 1.1 概述 代表了最佳实践方式,通常被有经验的面向对象的软件开发工作人员采用 ​ 是众多有经验的开发人家,经过很长时间的使用和错误总结出来的,用来解决一系列特定问题 ​ 它不是语法规范,而且一套用来提高代码的复用性、可读性、可维护性、鲁棒性及安全性的解决…

使用Dinky快速提交Flink operator任务

官网地址&#xff1a;K8s集成 | Dinky 1.目前使用版本 Dinky1.2.0、Flink1.18.1、Flink operator0.10.0 2.制作镜像 2.1创建DockerFile ARG FLINK_VERSION1.18.1 FROM flink:${FLINK_VERSION}-scala_2.12 RUN mkdir -p /opt/flink/usrlib COPY commons-cli-1.3.1.jar …

使用 Flink CDC 构建 Streaming ETL

安装并配置 Flink 1.下载 Flink 1.20.0 curl -k -O https://archive.apache.org/dist/flink/flink-1.20.0/flink-1.20.0-bin-scala_2.12.tgz 2.解压文件 tar -xzvf flink-1.20.0-bin-scala_2.12.tgz 3.移动到目标目录&#xff08;可选&#xff09; 将解压后的 Flink 目录移动到…

算命网站源码PHP框架_附2025新版设计书教程

算命网站源码PHP设计书 1. 项目概述 1.1 项目背景 随着互联网的发展&#xff0c;越来越多的人对命理和占卜产生了兴趣。算命网站可以为用户提供个性化的命理分析、运势预测等服务。本项目旨在设计一个基于PHP的算命网站&#xff0c;方便用户在线获取命理服务。 1.2 项目目标…

stm32第一次烧录或者上电运行卡死问题分析

问题描述 单片机烧录代码&#xff08;刚上电&#xff09;无法立即运行&#xff0c;必须要复位一次或多次才能运行&#xff1b;跟踪调试会进入HardFault_Handler中断。 问题分析 烧录配置如下图&#xff0c;首先排除配置问题那么该问题就比较让人头大了&#xff0c;理论上&am…

概率论常用的分布公式

01 常见离散型分布及其概率分布、期望和方差公式 伯努利分布 概率分布&#xff1a;期望&#xff1a; E(X)p方差&#xff1a;D(X)p(1−p) 二项分布 概率分布&#xff1a;期望&#xff1a;E(X)np方差&#xff1a; D(X)np(1−p) 表示方法&#xff1a;X∼B(n,p) 泊松分布 概率分布…

镜舟科技2024年度回顾,坚持长期价值,进一步实现商业突破

2024年&#xff0c;镜舟科技实现了显著的商业增长&#xff0c;ARR&#xff08;年度经常性收入&#xff09;连续三年翻倍&#xff0c;NRR&#xff08;净留存率&#xff09;保持在130%以上&#xff0c;商业化客户数量超过120家。公司持续为客户创造长期价值&#xff0c;通过开源战…