You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2015中使用Eigen3提示“No such file or directory”问题求助

解决VS2015中无法找到Eigen/Dense的问题

我来帮你一步步排查这个问题——既然PCL项目能正常使用Eigen,说明库本身没问题,大概率是新项目的配置出了小疏漏:

1. 核对附加包含目录的路径是否正确

先确认你的eigen3文件夹结构:打开它应该能直接看到Eigen子文件夹(里面包含Dense等头文件)。

  • 如果你的eigen3放在D:\ThirdParty\eigen3,那附加包含目录必须添加D:\ThirdParty\eigen3,而不是它的上级目录(比如D:\ThirdParty)。因为编译器会在你指定的包含目录下直接查找Eigen/Dense这个路径。
  • 要是你误加了上级目录,代码里就得写成#include <eigen3/Eigen/Dense>才能找到,但你现在用的是#include <Eigen/Dense>,自然会报错。

2. 确认配置对应当前项目的平台/模式

VS的配置是分平台(x86/x64)和模式(Debug/Release)的,别犯了低级错误:

  • 右键你的新项目 → 属性 → 确认顶部的「配置」和「平台」是你当前正在编译的模式(比如你编译的是Debug x64,就别在Release x86的配置里加路径)。
  • 很多人会不小心在错误的平台下配置,导致编译时根本没用到正确的路径。

3. 区分全局包含目录和项目级包含目录

PCL项目能正常用,可能是PCL的配置自动帮你加了Eigen路径,或者你之前在全局设置里加了,但新项目没继承:

  • 全局设置:工具 → 选项 → 项目和解决方案 → VC++目录 → 包含目录,这里的路径所有新项目都会继承,但要确认路径没写错。
  • 项目级设置:右键项目 → 属性 → C/C++ → 常规 → 附加包含目录,这里的优先级比全局高,建议直接在新项目里单独配置一次,避免全局设置的干扰。

4. 检查拼写和路径大小写

虽然Windows是大小写不敏感,但VS编译器偶尔会因为路径大小写不匹配报错(比如你的子文件夹是小写eigen但代码里写的是Eigen)。不过你说PCL里能用,这个概率很低,但还是确认下eigen3里的子文件夹确实是大写的Eigen。

最后提个小细节

你的代码里写的是void mian(),应该是void main()或者int main(),这个虽然不是头文件找不到的原因,但等头文件问题解决后,会因为这个导致运行错误,记得改过来。

内容的提问来源于stack exchange,提问作者lelle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:53:28