Eigen备忘录

1. 头文件不当会导致编译报错

VSCode 的 clangd (或别的插件?)会悄悄帮忙引入头文件,但也许引入的并符合你的预期:

#include <Eigen/src/Geometry/Transform.h> // 这文件有问题
#include <Eigen/Dense>
#include <Eigen/src/Geometry/Quaternion.h> // 这文件不需要
#include <iostream>
class Vector3
{
public:
float x;
float y;
float z;
Vector3(float x=0, float y=0, float z=0):
x(x), y(y), z(z){}
Vector3(Eigen::Vector3f v):
x(v.x()), y(v.y()), z(v.z()) {} // 此处 v.x(), v.y(), v.z() 会报错
}

改为如下则通过:

#include <Eigen/Dense>
#include <iostream>
class Vector3
{
public:
float x;
float y;
float z;
Vector3(float x=0, float y=0, float z=0):
x(x), y(y), z(z){}
Vector3(Eigen::Vector3f v):
x(v.x()), y(v.y()), z(v.z()) {} // 此处 v.x(), v.y(), v.z() 会报错
}
posted @   ChrisZZ  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2019-05-21 为安卓项目添加FileProvider
2018-05-21 error: each element of 'ext_modules' option must be an Extension instance or 2-tuple
点击右上角即可分享
微信分享提示