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 编译成功 

<think>好的,我需要帮助用户在Ubuntu 24.04上从源码编译安装OpenCV。用户已经提供了几个相关的引用资料,我需要仔细分析这些信息,然后整理出一个清晰的步骤指南。 首先,用户提到的引用[1]和[4]提到了下载源码和构建步骤。引用[1]提到需要克隆opencv和opencv_contrib的仓库,并切换到指定标签。而引用[4]则建议使用cmake构建,指定安装路径。另外,引用[2]和[3]涉及编译过程中可能遇到的依赖问题和路径设置问题,比如安装libgtk2.0-dev和设置OpenCV_DIR变量。 接下来,我需要把这些信息整合成一个连贯的流程。首先,安装依赖项是关键,因为缺少依赖会导致编译失败。引用[2]中提到安装libgtk2.0-dev和pkg-config,所以我需要确保这些依赖被包含在步骤中。可能还需要其他依赖,比如CMake、GCC等基础编译工具,以及OpenCV所需的图像和视频库。 然后是获取源码的步骤。用户可以选择下载源码压缩包或者使用git克隆仓库。引用[1]和[4]提供了两种方式,用户需要根据情况选择。如果需要opencv_contrib模块,必须克隆对应的仓库并切换到正确的标签。 接下来是配置和构建。引用[4]中使用了cmake命令来生成构建文件,指定了安装路径和生成器为Ninja。同时,如果包含contrib模块,需要设置OPENCV_EXTRA_MODULES_PATH参数,指向contrib模块的路径。引用[3]提到设置OpenCV_DIR变量,这可能是在某些情况下帮助CMake找到已安装的OpenCV配置,但在这里可能不需要,因为用户是从源码编译安装编译安装阶段需要运行构建命令,如ninja或者make,然后执行安装命令。最后是环境配置,确保系统能够找到新安装的OpenCV库,可能需要更新动态链接库缓存或者设置环境变量。 用户可能遇到的问题包括依赖项缺失、contrib模块路径错误、编译过程中的错误等。需要提醒用户在遇到问题时检查依赖是否安装完整,路径是否正确,并参考错误信息进行排查。例如,引用[2]中的错误提示需要安装特定依赖,这时候应该在步骤中提前包含这些依赖的安装命令。 最后,生成相关问题需要考虑用户在安装后可能遇到的进一步问题,比如验证安装、处理依赖冲突、多版本共存等,以及如何在不同项目中使用编译好的OpenCV库。</think>以下是在Ubuntu 24.04上通过源码编译安装OpenCV的详细步骤: ### 一、安装依赖项 1. 更新系统包列表 ```bash sudo apt update ``` 2. 安装基础编译工具 ```bash sudo apt install -y build-essential cmake ninja-build git pkg-config ``` 3. 安装多媒体依赖 ```bash sudo apt install -y libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev ``` 4. 安装GUI依赖(解决引用[2]的错误) ```bash sudo apt install -y libgtk2.0-dev libgtk-3-dev libcanberra-gtk* ``` 5. 安装数学优化库 ```bash sudo apt install -y libatlas-base-dev gfortran ``` ### 二、获取源码 #### 方式1:通过Git克隆 ```bash git clone https://github.com/opencv/opencv.git cd opencv git checkout 4.10.0 ``` #### 方式2:下载源码包(引用[4]) ```bash wget -O opencv.zip https://github.com/opencv/opencv/archive/4.10.0.zip unzip opencv.zip cd opencv-4.10.0 ``` #### (可选)添加contrib模块 ```bash git clone https://github.com/opencv/opencv_contrib.git cd opencv_contrib git checkout tags/4.10.0 ``` ### 三、配置构建参数 ```bash mkdir build && cd build cmake -GNinja \ -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \ -D WITH_TBB=ON \ -D WITH_V4L=ON \ -D WITH_OPENGL=ON \ -D OPENCV_GENERATE_PKGCONFIG=ON .. ``` 参数说明: - `CMAKE_INSTALL_PREFIX`:指定安装路径(引用[4]) - `OPENCV_EXTRA_MODULES_PATH`:contrib模块路径(引用[1]) - `OPENCV_GENERATE_PKGCONFIG`:生成pkg-config文件 ### 四、编译安装 ```bash ninja -j$(nproc) sudo ninja install ``` ### 五、环境配置 1. 更新动态链接库缓存 ```bash sudo ldconfig ``` 2. 验证安装 ```cpp #include <opencv2/core.hpp> int main() { std::cout << CV_VERSION << std::endl; return 0; } ``` ### 常见问题解决 1. **CMake找不到依赖**:根据引用[3],可手动指定路径 ```cmake set(OpenCV_DIR "/path/to/opencv/build") ``` 2. **GUI依赖错误**:确保已安装引用[2]提到的依赖 ```bash sudo apt install libgtk2.0-dev pkg-config ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值