C++ 交叉编译ubuntueclipse到armbeaglebone

C++ 交叉编译ubuntueclipse到armbeaglebone,c++,linux,eclipse,cross-compiling,C++,Linux,Eclipse,Cross Compiling,我有一个多年来一直在使用的过程来交叉编译beaglebone black的应用程序。我上次使用的下载是 gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linix 我有几个有效的程序,但最近我变得更有创意,所以我决定升级到一个新的工具链,所以我下载并安装了: gcc-linaro-5.2-2015.08-x86_64_arm-linux-gnueabihf 现在,即使是最简单的文件也无法编译 编译器声称找不到功能 我想那可能是一份来自beaglebone的文

我有一个多年来一直在使用的过程来交叉编译beaglebone black的应用程序。我上次使用的下载是

gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linix

我有几个有效的程序,但最近我变得更有创意,所以我决定升级到一个新的工具链,所以我下载并安装了:

gcc-linaro-5.2-2015.08-x86_64_arm-linux-gnueabihf

现在,即使是最简单的文件也无法编译

编译器声称找不到功能

我想那可能是一份来自beaglebone的文件。果不其然,所以我从beaglebone带来了它,现在它抱怨找不到bit/predefs.h。那个文件也在beaglebone上,但我严重怀疑这是我应该做的

有没有办法解决这个问题

我在64位操作系统上使用Ubuntu 14.04 LTS

编辑更多详细信息:

如果我的程序除了

#include <iostream>
int main()
{
    return 0;
}
#包括
int main()
{
返回0;
}
make的输出是 /usr/local/arm/arm-linux-gnueabihf/include/c++/5.2.1/features.h:323:26:致命错误:bits/predefs.h:没有这样的文件或目录

如果我把#include#注释掉

输出为:

arm-linux-gnueabihf-g++-L/usr/local/lib/arm-L/usr/local/arm/lib-o“FTDTest”。/src/FTDTest.o
/usr/local/arm/bin/./lib/gcc/arm-linux-gnueabihf/5.2.1/../../../../../../../../../arm-linux-gnueabihf/bin/ld:找不到crt1.o:没有这样的文件或目录 /usr/local/arm/bin/./lib/gcc/arm-linux-gnueabihf/5.2.1/../../../../../../../arm-linux-gnueabihf/bin/ld:找不到crti.o:没有这样的文件或目录 /usr/local/arm/bin/./lib/gcc/arm-linux-gnueabihf/5.2.1/../../../../../../arm-linux-gnueabihf/bin/ld:找不到-lm


解决方案: 问题是工具链中的sysroot没有指向正确的目录。由于我无法在不重建工具链的情况下更改sysroot,因此我将sysroot的目录移动到sysroot所指向的目录中,它就像一个符咒。这不是最好的解决办法,但可以让我过去