Ich möchte Eigen für ein Bare-Metal-ARM-System zu bewerten. Hier ist, was ich versuche zu kompilieren:Eigen Beispiel Code schlägt ARM Bare-Metal Compilieren
#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 gibt mir dies:
[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.
Ich bin ein C-Programmierer, nicht C++, aber ich verstehe, dass dies ein Problem ist, Bibliothek. Ich habe mir einige Hinweise zur Verwendung von C++ auf Bare-Metal-Systemen angeschaut, aber ehrlich gesagt bin ich immer noch etwas verwirrt darüber, wie es weitergehen soll. Ich möchte nur die fehlenden Sachen, die malloc(), free(), etc. sind, ausheften, damit ich eine erfolgreiche Kompilierung bekommen kann. Ich habe versucht, meine eigene new.h mit -nostdinC++ -include new.h auf den Compiler-Aufruf, aber das hat nicht funktioniert.
Mache ich einen einfachen Fehler, oder versuche Eigen in dieser Umgebung einen Narrenauftrag zu verwenden? Jede Anleitung würde sehr geschätzt werden.
Ich denke, das ist ein generelles Problem mit C++ - Bibliotheken, so dass Sie nach allgemeinen C++ - Tipps suchen können. Übrigens, beachten Sie, dass die fehlende Header-Standarddatei "neu" ohne die Erweiterung ".h" ist. Dies sollte Ihnen helfen, einen Schritt weiter zu gehen. Wenn es dir gelingt, etwas zum Laufen zu bringen, sende bitte ein kurzes Tutorial an Eigens Entwickler, damit wir es auf dem Wiki/doc machen können. – ggael
Es scheint auch, dass jemand anderes (mit Ausnahme von Ihnen?) Erfolgreich mit Eigen auf einer ähnlichen Plattform umgehen konnte: https://forum.kde.org/viewtopic.php?f=74&t=138964. Fühlen Sie sich frei, ihm Ratschläge zu stellen. – ggael