我想評估一個裸機ARM系統的Eigen。以下是我想要編譯: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);
}
編輯給了我這樣的:
[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.
我是一個C程序員,而不是C++,但我不明白,這是一個圖書館的問題。我已經看過幾篇有關在裸機系統上使用C++的參考文獻,但坦率地說,我仍然對如何進行操作感到困惑。我想簡單地列出缺少的東西,這些東西好像是malloc(),free()等等,這樣我就可以成功編譯了。我試過用我自己的new.h與-nostdinC++ -include new.h對編譯器的調用,但沒有奏效。
我是犯了一個簡單的錯誤,還是試圖在這個環境中使用Eigen傻瓜的差事?任何指導將不勝感激。
我想這是C++庫的一個普遍問題,所以你可以搜索一般的C++技巧。順便說一下,請注意,標準缺失頭文件是'new',不帶'.h'擴展名。這應該可以幫助你更進一步。如果你能設法解決問題,請向Eigen的開發者發送一個簡短的教程,以便我們可以在wiki/doc上找到它。 – ggael
另外,似乎有人成功(除非是你?)設法在類似的平臺上與Eigen打交道:https://forum.kde.org/viewtopic.php?f = 74&t = 138964。隨意問他的建議。 – ggael