cmake导入Eigen库

添加环境变量后直接导入。直接设置好像无效。

SET( EIGEN3_INCLUDE_DIR "$ENV{EIGEN3_INCLUDE_DIR}" )
IF( NOT EIGEN3_INCLUDE_DIR )
    MESSAGE( FATAL_ERROR "Please point the environment variable EIGEN3_INCLUDE_DIR to the include directory of your Eigen3 installation.")
ENDIF()
INCLUDE_DIRECTORIES ( "${EIGEN3_INCLUDE_DIR}" )

Eigen库
解决方案

### 在 Ubuntu 上安装和使用 Eigen #### 安装方法 可以通过两种方式在 Ubuntu 系统上安装 Eigen :通过包管理器 `apt` 或者手动编译源码。 1. **通过包管理器安装** 使用系统的包管理工具可以直接快速安装 Eigen 。执行以下命令完成安装: ```bash sudo apt-get update sudo apt-get install libeigen3-dev ``` 这种方法会将 Eigen 的头文件安装到 `/usr/include/eigen3` 路径下[^1]。如果需要确认安装路径,可以在终端运行 `locate eigen3` 查看具体位置[^1]。 2. **手动编译安装** 如果希望安装最新版本或者自定义配置,可以选择从官方仓下载并编译源码。以下是操作步骤: - 下载源码压缩包: ```bash wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz tar -zxvf eigen-3.4.0.tar.gz ``` - 创建构建目录并运行 CMake 配置脚本: ```bash mkdir build cd build cmake .. ``` - 编译并安装: ```bash sudo make install ``` 默认情况下,这会将 Eigen 头文件安装至 `/usr/local/include/eigen3`[^2]。如果需要更改目标路径,可通过修改 CMake 参数实现,例如 `-DCMAKE_INSTALL_PREFIX=/custom/path`。 #### 使用方法 Eigen 是一个基于头文件的,因此无需额外链接动态或静态文件即可使用[^3]。只需要确保项目能够正确访问其头文件所在路径。 1. **C++ 文件中引入 Eigen** 在代码开头加入如下语句以导入所需模块: ```cpp #include <iostream> #include <Eigen/Dense> // 密集矩阵运算支持 ``` 2. **编写简单程序示例** 下面展示了一个简单的例子来创建和打印矩阵对象: ```cpp #include <iostream> #include <Eigen/Dense> using namespace Eigen; int main() { MatrixXd m(2, 2); m(0, 0) = 3; m(1, 0) = 2.5; m(0, 1) = -1; m(1, 1) = m(1, 0) + m(0, 1); std::cout << "Here is the matrix m:\n" << m << std::endl; return 0; } ``` 3. **设置 CMake 工程** 若采用 CMake 构建工程项目,则需编辑 `CMakeLists.txt` 来指定 Eigen 的头文件路径。例如: ```cmake cmake_minimum_required(VERSION 3.10) project(EigenExample LANGUAGES CXX) find_package(Eigen3 REQUIRED) include_directories(${EIGEN3_INCLUDE_DIR}) add_executable(eigen_example main.cpp) target_link_libraries(eigen_example PUBLIC Eigen3::Eigen) ``` #### 注意事项 由于 Eigen 不提供 `.so` 或 `.a` 类型的二进制文件,在链接阶段不会涉及这些资源[^3]。仅需保证编译器能找到对应的头文件即可正常工作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值