控制科学与工程:随手笔记(5)--Eigen、vscode配置

Eigen库与VSCode配置详解
博客主要介绍了Eigen库的使用注意事项,包括不能混合不同类型矩阵运算、Matrix3d和vector3d等类的特性,以及VSCode的相关配置链接。

在这里插入图片描述

Eigen库中的变量类型及函数
变量 功能
Eigen::Matrix3d 旋转矩阵3X3,元素为double类型(此处也可以为:f,i,c)(可以直接输出)
Eigen::Matrix<float,2,3> 定义2X3矩阵,元素为float类型(Eigen中所有的向量和矩阵的底层都是如此定义)
Eigen::Vector3d 定义三维列向量,等价于Eigen::Matrix<double,3,1>
Eigen::SelfAdjointEigenSolver< Eigen::Matrix3d > A(B) 矩阵B的相似对角化
Eigen::Matrix<float,Eigen::Dynamic,Eigen::Dynamic> 定义动态矩阵,运行时确定矩阵大小,相对耗时
Eigen::MatrixXd 定义动态矩阵
Eigen::Isometry3d 欧式变换矩阵4X4
Eigen::AngleAxisd rotation_vector(M_PI/4,Eigen::Vector3d(0,0,1)) 旋转向量3
<think>好的,我现在需要解决用户在使用Eigen库时遇到的包含路径错误的问题。用户提到的错误是“Dense头文件报错”,具体路径是“D:/eigen-3.4.0/eigen-3.4.0/Eigen/Dense”。我需要结合用户提供的引用内容来找出解决方案。 首先,根据引用[3],安装Eigen库有两种方法:通过apt安装或者从官网下载源码。用户显然是从官网下载的,因为路径是D盘下的解压目录。引用[3]中提到,如果使用官网下载的源码,需要在项目的包含目录中添加Eigen的路径。例如在VS Studio中,右键项目属性,在VC++目录的包含目录里添加路径。用户可能没有正确设置这个路径,导致编译器找不到头文件。 然后看引用[1]和[2],其中提到需要将Eigen的路径包含到CMakeLists.txt中。比如,引用[2]中的CMakeLists.txt有include_directories("/home/joanna/Downloads/eigen-3.4.0"),这应该是用户项目中的Eigen路径。用户当前的路径是D:/eigen-3.4.0/eigen-3.4.0,可能需要检查CMakeLists中的路径是否正确,是否指向正确的Eigen父目录。 另外,引用[3]还提到可能需要将Eigen目录复制到系统的包含路径,比如/usr/local/include,但用户使用的是Windows系统(路径是D盘),所以可能需要不同的处理方式。在Windows下,通常是在IDE中设置包含路径,或者确保CMake正确配置。 用户可能在CMakeLists.txt中没有正确设置include_directories,或者路径写错了。例如,正确的路径应该是D:/eigen-3.4.0,而不是包含到Eigen子目录,因为Eigen的头文件位于解压后的目录中的Eigen文件夹。所以,如果include_directories指向的是D:/eigen-3.4.0,那么#include <Eigen/Dense>就能正确找到,因为Eigen目录在D:/eigen-3.4.0下。 另外,用户可能在代码中使用了错误的包含方式。例如,正确的方式是#include <Eigen/Dense>,但用户可能路径配置错误,导致编译器找不到这个路径。 还需要检查路径中的斜杠是否正确,Windows中使用反斜杠,但在CMake中可能需要用正斜杠或双反斜杠。例如,D:/eigen-3.4.0应该正确。 另外,引用[1]提到需要将Eigen的核心和Tensor部分复制到项目目录,但用户可能没有这样做,或者复制的位置不对。不过更常见的做法是直接在CMake中包含Eigen的根目录,而不需要复制文件到项目里。 可能的解决方案步骤: 1. 确认Eigen库的解压路径是否正确,路径是否存在。 2. 在CMakeLists.txt中使用include_directories命令添加Eigen的根目录,例如D:/eigen-3.4.0。 3. 确保代码中的包含语句是#include <Eigen/Dense>。 4. 如果是使用Visual Studio,检查项目属性中的包含目录是否添加了Eigen的路径。 5. 重新生成CMake项目,并清理可能的缓存。 用户可能的问题在于CMakeLists.txt中的路径设置不正确,或者IDE的包含路径没有正确配置。需要指导用户检查这些配置,并确保路径正确无误。</think>### 解决Eigen库包含路径错误的步骤 #### 1. 确认Eigen库的安装路径 确保解压后的Eigen库路径为 `D:/eigen-3.4.0`,目录结构应包含 `Eigen` 子文件夹(如 `D:/eigen-3.4.0/Eigen`)。若解压后路径为 `D:/eigen-3.4.0/eigen-3.4.0`,需调整后续配置中的路径。 #### 2. 配置CMakeLists.txt 在项目的 `CMakeLists.txt` 中添加Eigen库的包含路径: ```cmake include_directories("D:/eigen-3.4.0") # 指向Eigen根目录,而非子文件夹 ``` 注意路径中无需包含 `Eigen` 子目录,因为头文件引用格式为 `#include <Eigen/Dense>`[^2][^3]。 #### 3. 验证Visual Studio配置(如适用) 如果使用Visual Studio: 1. 右键项目 → 属性 → **VC++目录** → **包含目录** → 添加路径 `D:/eigen-3.4.0`。 2. 清理项目并重新生成解决方案[^3]。 #### 4. 检查代码包含语句 确保代码中头文件引用格式正确: ```cpp #include <Eigen/Dense> // 正确格式 ``` 而非: ```cpp #include "D:/eigen-3.4.0/Eigen/Dense" // 错误格式 ``` #### 5. 重启开发环境 修改配置后,重启IDE或执行 `File → Reload CMake Project`(如CLion)以刷新路径缓存[^1]。 #### 6. 测试代码 使用简单代码验证安装: ```cpp #include <iostream> #include <Eigen/Dense> int main() { Eigen::MatrixXd m = Eigen::MatrixXd::Random(3,3); std::cout << m << std::endl; return 0; } ``` 若输出随机矩阵,则配置成功[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值