ubuntu 安装使用eigen3 (两种方式)

1. apt 方式安装(假设默认安装到/usr/local/include里(可在终端中输入locate eigen3查看位置),若实际中默认安装到了/usr/include的话,可以对应替换下面命令的相应部分)

sudo apt install libeigen3-dev

//若默认安装的是/usr/local/include/eigen3/Eigen 下,将Eigen文件夹拷贝一份到/usr/local/include 下
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include 

2. 源码安装

http://eigen.tuxfamily.org/index.php?title=Main_Page 

选择合适的版本。

也可以在github down一份下来

git clone https://github.com/eigenteam/eigen-git-mirror

#安装
cd eigen-git-mirror
mkdir build
cd build
cmake ..
sudo make install

#安装后,头文件安装在/usr/local/include/eigen3/

#移动头文件

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

因为eigen3 被默认安装到了usr/local/include里了(或者是usr/include里,这两个都差不多,都是系统默认的路径),在很多程序中include时经常使用#include <Eigen/Dense>而不是使用#include <eigen3/Eigen/Dense>所以要做下处理,否则一些程序在编译时会因找不到Eigen/Dense而报错。上面指令将usr/local/include/eigen3文件夹中的Eigen文件递归地复制到上一层文件夹(直接放到/usr/local/include中,否则系统无法默认搜索到 -> 此时只能在CMakeLists.txt用include_libraries(绝对路径了))

3. 测试例子

#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;
}

4. 编译 查看输出:

g++ eigen-test.cpp -o eigen-test

5. 输出:

$ ./eigen-test
*******************1D-object****************
v1=
1
2
3
4
v2=
1
2
3
v3=
1
2
3
4
v4=
1
2
3

 

<think>好的,我现在需要在Ubuntu 20.04.05上安装Eigen库,但不太确定该怎么做。首先,我记得Eigen是一个C++的数学库,主要用于线性代数、矩阵运算等。安装方法可能有两种:一种是通过系统的软件包管理器直接安装,另一种是从源码编译安装。不过,我需要具体步骤。 根据用户提供的引用内容,引用[1]提到在Ubuntu 20.04上可以使用apt命令安装libeigen3-dev,看起来这是最简单的方法。命令是sudo apt update然后sudo apt install libeigen3-dev。这应该会自动安装Eigen库到系统目录,比如/usr/include/eigen3。不过,可能需要确认安装后的路径是否正确,以及是否需要手动复制头文件到其他位置。引用[3]和[4]提到了从源码安装的方法,包括下载tar.gz包、解压、编译安装,并复制Eigen到/usr/local/include。而引用[5]则提到了从官网下载tar.gz文件。这说明有两种主要安装方式:apt安装和源码安装。 用户的问题是关于Ubuntu 20.04.05的具体安装方法,所以应该优先推荐使用apt安装,因为更简单快捷。但需要注意版本问题,系统仓库中的Eigen版本可能不是最新的。如果用户需要特定版本或最新版,可能需要源码安装。例如,引用[3]提到安装Eigen3.2.9,而引用[4]是关于Ubuntu22.04安装最新版,但步骤类似。所以,如果用户需要较新版本,源码安装是更好的选择。 另外,安装后的路径可能需要处理。例如,通过apt安装Eigen可能位于/usr/include/eigen3,而程序可能需要包含头文件时使用#include <Eigen/Dense>,但实际路径可能是/usr/include/eigen3/Eigen,因此可能需要创建符号链接或者调整编译器的包含路径。或者按照引用[3]中的步骤,将Eigen目录复制到/usr/local/include下,这样编译器就能找到。 总结步骤的话,首先是使用apt安装,如果版本合适,那最简单。如果不行,再从源码安装。同时,确保安装后的路径正确,以便编译器能够找到头文件。 另外,需要验证安装是否成功。可以创建一个简单的测试程序,比如包含Eigen头文件,编译运行看是否有错误。例如: ```cpp #include <iostream> #include <Eigen/Dense> using namespace Eigen; int main() { Matrix2d mat; mat << 1, 2, 3, 4; std::cout << mat << std::endl; return 0; } ``` 然后用g++编译:g++ -I /usr/include/eigen3 test.cpp -o test,然后运行./test。如果没有错误,说明安装成功。 用户可能遇到的问题包括安装后找不到头文件,这时候需要检查包含路径是否正确,或者是否需要将Eigen目录移动到更合适的位置。比如,引用[3]提到复制到/usr/local/include,这样就不需要额外指定-I参数了。 所以,回答应该分两种方法:apt安装和源码安装,并说明验证步骤,以及可能遇到的问题的解决方法。</think>### 在 Ubuntu 20.04.05 上安装 Eigen 库的方法 #### 方法一:通过 `apt` 包管理器安装(推荐) 1. **更新软件包列表** 确保系统软件源是最新状态: ```bash sudo apt update ``` 2. **安装 Eigen 库** Ubuntu 20.04 官方仓库包含预编译的 Eigen 库(默认版本为 3.3.7): ```bash sudo apt install libeigen3-dev ``` 3. **验证安装** 安装完成后,头文件默认位于 `/usr/include/eigen3/Eigen`。 可通过以下命令查看版本: ```bash cat /usr/include/eigen3/Eigen/src/Core/util/Macros.h | grep VERSION ``` #### 方法二:手动编译安装(适用于特定版本) 若需安装其他版本(如 3.4.0 或更高),需从源码编译: 1. **下载源码** 前往 [Eigen 官网](https://gitlab.com/libeigen/eigen/-/releases) 下载所需版本的 `.tar.gz` 文件(如 `eigen-3.4.0.tar.gz`)[^5]。 2. **解压并编译** ```bash tar -xzvf eigen-3.4.0.tar.gz cd eigen-3.4.0 mkdir build cd build cmake .. sudo make install ``` 3. **配置头文件路径** 默认安装路径为 `/usr/local/include/eigen3`。若需全局访问,可手动复制头文件: ```bash sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include # 参考[^3] ``` #### 验证使用 编写测试程序 `test.cpp`: ```cpp #include <iostream> #include <Eigen/Dense> using namespace Eigen; int main() { Matrix2d mat; mat << 1, 2, 3, 4; std::cout << "Matrix:\n" << mat << std::endl; return 0; } ``` 编译并运行: ```bash g++ -I /usr/include/eigen3 test.cpp -o test && ./test ``` 若输出矩阵内容,则安装成功。若路径不同,需调整 `-I` 参数指向正确头文件目录。 #### 注意事项 - **权限问题**:手动安装时建议使用 `sudo` 避免权限错误[^4]。 - **版本兼容性**:不同版本的 Eigen API 可能有差异,需根据项目需求选择。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ppipp1109

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值