Linux(Ubuntu24.04)安装Eigen3库

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

Eigen3是一个C++模板库,用于线性代数、矩阵运算和数值计算。它提供了一组高性能的矩阵和向量操作,以及常用的线性代数算法,如矩阵分解、特征值求解和最小二乘解等。

1、安装Eigen3

有两种安装方式,一种是apt直接install,另一种是源码编译安装。

1.1 方式1

libeigen3-dev是Eigen库的开发包,包含了开发所需的头文件和库文件。

sudo apt-get update
sudo apt install libeigen3-dev

通常情况,安装位置在 /usr/local/include/eigen3或者/usr/include/eigen3中,ls查看eigen3下有两个文件夹Eigen、unsupported和一个signature_of_eigen3_matrix_library文件。

ls /usr/include/eigen3/
Eigen  signature_of_eigen3_matrix_library  unsupported

1.2 方式2

#在GitHub上克隆eigen3库文件
git clone https://github.com/OPM/eigen3.git
 
#编译安装
cd eigen3
mkdir build
cd build
cmake ..
sudo make install 

1.3 Eigen路径

因为eigen3 被默认安装到了usr/local/include里了(或者是usr/include里,这两个都差不多,都是系统默认的路径),在很多程序中include时经常使用#include <Eigen/Dense>而不是使用#include <eigen3/Eigen/Dense>所以要做下处理,否则一些程序在编译时会因找不到Eigen/Dense而报错。此时只能在CMakeLists.txt用include_libraries(绝对路径)。解决方式如下:

(1)创建软连接(推荐)

sudo ln -s /usr/include/eigen3/Eigen /usr/local/include/Eigen

(2)或者复制Eigen到上级目录

sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include 

1.4 查看Eigen3版本

#使用pkg-config工具查看
pkg-config --modversion eigen3
3.4.0

或者通过cat /usr/include/eigen3/Eigen/src/Core/util/Macros.h 或 cat /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h,查看Eigen版本号。 g++ --version | grep Eigen 命令也可以查看Eigen版本。

2、测试Eigen3

2.1 创建test.cpp

#建立 test 测试文件
touch test.cpp
#用 gedit 打开此测试文件
vim test.cp

2.2 代码

#include <iostream>
#include <Eigen/Dense>
//using Eigen::MatrixXd;
using namespace Eigen;
using namespace Eigen::internal;
using namespace Eigen::Architecture;
 
using namespace std;
 
int main()
{
        cout<<"*******************1D-object****************"<<endl;
        Vector4d v1;
        v1<< 1,2,3,4;
        cout<<"v1=\n"<<v1<<endl;
 
        VectorXd v2(3);
        v2<<1,2,3;
        cout<<"v2=\n"<<v2<<endl;
 
        Array4i v3;
        v3<<1,2,3,4;
        cout<<"v3=\n"<<v3<<endl;
 
        ArrayXf v4(3);
        v4<<1,2,3;
        cout<<"v4=\n"<<v4<<endl;
}

2.3 编译运行 

g++ test.cpp -o test
./test
*******************1D-object****************
v1=
1
2
3
4
v2=
1
2
3
v3=
1
2
3
4
v4=
1
2
3

<think>我们正在解决用户的问题:在Ubuntu 24.04安装PCL的Python(即python-pcl) 根据之前的对话,我们知道用户在安装PCL,现在特别关注Python绑定。 从引用[1]中我们得知: - 如果不需要Python,可以关闭DVTK_WRAP_PYTHON以简化构建 - 但我们现在需要Python绑定,因此需要确保开启Python支持 然而,Ubuntu官方仓提供的`libpcl-dev`可能不包含Python绑定,或者包含的版本可能不是我们想要的。 因此,我们需要考虑从源码构建PCL并开启Python支持。 步骤: 1. 安装依赖(包括Python开发环境) 2. 从源码编译PCL并启用Python绑定 3. 安装完成后验证Python绑定 注意:Ubuntu 24.04默认使用Python3,因此我们需要确保绑定是针对Python3的。 具体步骤: ### 1. 安装系统依赖和编译工具 ```bash sudo apt update sudo apt install -y build-essential cmake git libboost-all-dev libeigen3-dev libflann-dev libvtk9-dev libqhull-dev libopenni2-dev python3-dev ``` ### 2. 安装PCL的Python绑定所需的额外依赖 ```bash sudo apt install -y python3-pip pip3 install numpy ``` ### 3. 克隆PCL源码并编译(开启Python绑定) ```bash git clone https://github.com/PointCloudLibrary/pcl.git cd pcl mkdir build cd build ``` 配置CMake,注意开启Python绑定(默认可能是开启的,但我们要确保): ```bash cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DWITH_MPI=ON \ # 引用[1]强调需要启用MPI支持 -DBUILD_visualization=ON \ -DVTK_RENDERING_BACKEND=OpenGL2 \ -DWITH_PYTHON=ON # 确保开启Python绑定 ``` 如果我们需要指定Python版本,可以设置: ```bash -DPYTHON_EXECUTABLE=/usr/bin/python3 \ -DPYTHON_INCLUDE_DIR=/usr/include/python3.12 \ # 请根据实际Python版本调整 -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.12.so ``` 但通常CMake会自动找到。如果遇到问题,再显式指定。 ### 4. 编译并安装 ```bash make -j$(nproc) sudo make install ``` ### 5. 设置环境变量(如果需要) 安装完成后,Python绑定的模块通常会被安装到`/usr/local/lib/python3.12/dist-packages`(具体路径取决于你的Python版本和系统配置)。我们需要确保Python可以找到它。 可以将其添加到Python的sys.path中,或者设置环境变量`PYTHONPATH`: ```bash echo &#39;export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.12/dist-packages&#39; >> ~/.bashrc source ~/.bashrc ``` ### 6. 验证安装 在Python中尝试导入: ```python import pcl print(pcl.__version__) ``` 如果遇到错误,可能是由于共享路径问题,尝试: ```bash sudo ldconfig ``` ### 注意事项 1. **VTK的Python绑定**:PCL的某些模块(如可视化)依赖VTK的Python绑定。如果不需要可视化,可以关闭`BUILD_visualization`。如果需要,确保安装了`python3-vtk9`: ```bash sudo apt install python3-vtk9 ``` 2. **使用预编译包的可能性**:如果Ubuntu提供了`python3-pcl`包,我们可以直接安装。但在Ubuntu 24.04中,我们检查是否有该包: ```bash apt search python3-pcl ``` 如果没有,则必须源码编译。 3. **常见问题**:如果编译过程中出现关于`pcl_ros`或ROS相关错误,可能是因为环境中有ROS,建议在干净的环境下编译。 ### 替代方案:使用pip安装 有一个非官方的Python-PCL可以通过pip安装,但它可能需要系统安装PCL(即`libpcl-dev`): ```bash pip3 install python-pcl ``` 但是,这个非官方可能不完全兼容最新的PCL版本,且功能可能受限。如果使用此方法,确保已经通过`apt`安装了`libpcl-dev`。 因此,我们优先推荐源码编译安装以获得完整功能。 --- §§相关问题§§ 1. 如何解决在导入`pcl`时出现的`ImportError: libpcl_common.so.1.12: cannot open shared object file`错误? 2.Ubuntu 24.04中如何同时安装PCL的C++和Python绑定? 3. 如何为PCL Python绑定编写一个简单的点云读取和可视化程序? </think>### Ubuntu 24.04 安装 PCL Python 完整指南 以下是针对 Python 绑定的 PCL 安装方法,结合系统依赖和源码编译流程: #### 1. **安装系统依赖与编译工具** ```bash sudo apt update && sudo apt upgrade -y sudo apt install -y \ build-essential cmake git \ libboost-all-dev libeigen3-dev libflann-dev \ libvtk9-dev libqhull-dev libopenni2-dev \ python3-dev python3-pip ``` #### 2. **源码编译 PCL(启用 Python 绑定)** ```bash git clone https://github.com/PointCloudLibrary/pcl.git cd pcl && mkdir build && cd build # 关键配置(启用 Python 绑定) cmake .. \ -DCMAKE_BUILD_TYPE=Release \ -DWITH_MPI=ON \ # 必须开启(引用[1]) -DWITH_PYTHON=ON \ # 显式启用 Python 绑定 -DBUILD_visualization=ON \ -DVTK_RENDERING_BACKEND=OpenGL2 \ -DBUILD_apps=OFF # 精简非必要组件 make -j$(nproc) sudo make install ``` #### 3. **验证 Python 绑定** ```python # 测试脚本 test_pcl.py import pcl cloud = pcl.PointCloud() print(f"PCL version: {pcl.__version__}") ``` 运行验证: ```bash python3 test_pcl.py # 应显示版本号且无报错 ``` #### 4. **环境配置注意事项** - **Python 路径问题**:若导入失败,手动添加路径: ```bash echo &#39;export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.12/dist-packages&#39; >> ~/.bashrc source ~/.bashrc ``` - **依赖兼容性**: - 确保 `python3-dev` 版本与系统 Python 一致 - 若使用虚拟环境,需在激活环境下重新编译 #### 5. **替代方案(预编译包)** 若无需最新特性,可尝试安装预编译包: ```bash sudo apt install python3-pcl # 可用性取决于仓支持 pip3 install python-pcl --no-cache-dir # 第三方封装(需先安装 libpcl-dev) ``` > ⚠️ **关键提示**:源码编译时 `-DWITH_PYTHON=ON` 必须显式声明(引用[1]),否则默认不生成 Python 绑定。若需精简安装,可关闭可视化模块:`-DBUILD_visualization=OFF` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值