在Visual Studio中配置Eigen数学库时出现uintptr_t未定义等报错
Eigen配置编译错误解决方案
错误根因说明
你遇到的两类报错都是配置和引用方式错误导致的:
- 直接引用Eigen库内部头文件
Eigen/Core/Matrix.h,这类内部头文件没有做依赖前置声明,不会自动引入需要的标准库依赖,直接引用会触发大量标准库标识符未定义错误,也就是你看到的uintptr_t未定义报错 - 项目未配置Eigen库的包含目录,IntelliSense无法正确识别Eigen的代码结构,所以头文件里会出现红色波浪线报错
Vector3f属于Eigen命名空间下的类型,代码中没有加命名空间前缀也会触发未定义标识符错误
具体修复步骤
- 第一步:配置项目附加包含目录
右键Visual Studio项目 -> 选择「属性」-> 切换到「C/C++ > 常规」配置页 -> 在「附加包含目录」中添加你项目下的Vendor文件夹路径,保存配置。 - 第二步:修改main.cpp为正确的代码写法
#include <iostream> // 引用Eigen对外暴露的模块头文件,不要引用内部子头文件 #include <Eigen/Core> int main() { // Vector3f属于Eigen命名空间,需要加前缀 Eigen::Vector3f v; return 0; }
- 第三步:校验项目基础配置
右键项目 -> 选择「属性」-> 切换到「常规」配置页:- Windows SDK版本选择你本机已安装的正式发布版,不要选用「最新安装的版本」这类动态选项,避免SDK缺失标准库定义
- C语言标准选择C17及以上版本,匹配高版本Eigen的依赖要求
- 第四步:重新生成项目
点击顶部菜单栏「生成 > 清理解决方案」,再点击「生成 > 重新生成解决方案」,编译错误和头文件红色波浪线都会同步消失。
内容的提问来源于stack exchange,提问作者Cool_Cornflakes
相关产品推荐
相关产品推荐

