gpt4 book ai didi

c++ - Eigen 示例代码未能通过 ARM 裸机编译

转载 作者:搜寻专家 更新时间:2023-10-31 01:32:52 24 4
gpt4 key购买 nike

我要评价Eigen对于裸机 ARM 系统。这是我要编译的内容:

#include <Eigen/Dense>
using Eigen::MatrixXd;

void test()
{
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);
}

编译给了我这个:

phil@Mint-Virtual ~/Projects/Eigen $ /usr/bin/arm-none-eabi-g++ -I ./eigen-eigen-3.3.3 test.cpp -o test.o
In file included from ./eigen-eigen-3.3.3/Eigen/Dense:1:0,
from test.cpp:5:
./eigen-eigen-3.3.3/Eigen/Core:66:17: fatal error: new: No such file or directory
compilation terminated.

我是 C 程序员,不是 C++,但我明白这是一个库问题。我已经查看了一些关于在裸机系统上使用 C++ 的引用资料,但坦率地说,我仍然对如何进行感到困惑。我只想删除丢失的东西,似乎是 malloc()、free() 等,这样我就可以成功编译。我试过在编译器调用时使用我自己的 new.h-nostdinc++ -include new.h,但这没有用。

我是犯了一个简单的错误,还是在这种环境中尝试使用 Eigen 是徒劳的?任何指导将不胜感激。

最佳答案

裸机系统没有内存分配器,所以不能使用new和delete。使用固定大小矩阵的代码应该可以工作:

#define EIGEN_NO_MALLOC
#include <Eigen/Dense>
using Eigen;

void test()
{
Matrix2d m;
m(0,0) = 3;
m(1,0) = 2.5;
m(0,1) = -1;
m(1,1) = m(1,0) + m(0,1);
}

关于c++ - Eigen 示例代码未能通过 ARM 裸机编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42443834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com