当前位置: 首页 > article >正文

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

        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.kler.cn/a/466723.html

相关文章:

  • IDEA工具使用介绍、IDEA常用设置以及如何集成Git版本控制工具
  • matlab simulink电池充放电模型
  • SSH多秘钥管理
  • ThinkPHP 8高效构建Web应用-控制器
  • df.groupby()方法使用在查询中用到的筛选条件函数对 数据进行分组
  • Python基于Gradio可视化部署机器学习应用
  • Redis--内存管理(过期删除和内存淘汰策略)
  • 机器学习笔记 - 单幅图像深度估计的最新技术
  • python对mongodb的增删查改
  • 半导体材料-制造材料
  • 分布式锁常见实现方案总结
  • 数据库进阶教程之DDL语句(万字详解)
  • 使用 Docker 查看 Elasticsearch 错误日志
  • OpenCV相机标定与3D重建(41)从 3D 物点和它们对应的 2D 图像点估算初始相机内参矩阵函数initCameraMatrix2D()的使用
  • MySQL8安装与卸载
  • 跳转至系统设置下某个子模块 - 鸿蒙 Harmony
  • 使用Python实现实时视频处理与分析:解锁计算机视觉的无限可能
  • Go语言中的逃逸分析:深入浅出
  • [网络安全] DVWA之 Weak Session IDs -弱会话- 攻击姿势及解题详析合集
  • 外观模式详解