Я хочу оценить 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
без расширения.h
. Это должно помочь вам сделать еще один шаг вперед. Если вам удастся заставить что-то работать, пожалуйста, отправьте краткое руководство разработчикам Eigen, чтобы мы могли его разместить в wiki/doc. - person ggael   schedule 24.02.2017