Je souhaite évaluer Eigen pour un système ARM sans métal. Voici ce que je suis en train de compiler:Échec du code d'exemple Exemple de compilation ARM bare metal
#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);
}
Compilation me donne ceci:
[email protected] ~/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.
Je suis un programmeur C, pas C++, mais je comprends que cela est un problème de bibliothèque. J'ai regardé plusieurs références sur l'utilisation de C++ sur des systèmes sans métal, mais franchement, je suis encore un peu perplexe sur la façon de procéder. Je voudrais simplement remplacer les éléments manquants, qui semblent être malloc(), free(), etc., afin que je puisse obtenir une compilation réussie. J'ai essayé d'utiliser mon propre new.h avec -nostdinC++ -include new.h sur l'appel du compilateur, mais cela n'a pas fonctionné. Est-ce que je commets une erreur simple, ou est-ce que j'essaie d'utiliser Eigen dans cet environnement une course de fou? Toute orientation serait grandement appréciée.
Je suppose que c'est un problème général avec les bibliothèques C++, donc vous pouvez rechercher des astuces générales en C++. BTW, notez que le fichier d'en-tête manquant standard est 'new' sans l'extension' .h'. Cela devrait vous aider à aller plus loin. Si vous parvenez à faire fonctionner quelque chose, envoyez un petit tutoriel aux développeurs d'Eigen pour que nous puissions le faire sur le wiki/doc. – ggael
Il semble également que quelqu'un d'autre réussit (à moins que ce soit vous?) À gérer Eigen sur une plate-forme similaire: https://forum.kde.org/viewtopic.php?f=74&t=138964. N'hésitez pas à lui demander des conseils. – ggael