找不到gcc-arm-linux-gnueabi命令

时间:2013-01-06 07:14:56

标签: linux ubuntu arm gnu

我正在尝试为ubuntu安装gnu arm工具链。我首先从CodeSourcery下载了tar。但是当我进入bin文件夹时,我无法运行任何二进制文件。我已经尝试过./而没有把它放在PATH中并且它一直告诉我“Command not Found”但是文件就在我面前的文件夹中。然后我尝试了sudo apt-get install gcc-arm-linux-gnueabi,除非它说已成功安装,我找不到它的地方gcc-arm-linux-gnueabi。有人可以帮忙吗?

11 个答案:

答案 0 :(得分:19)

您是在64位操作系统上编译吗?尝试:

sudo apt-get install ia32-libs

尝试编译Raspberry Pi内核时遇到了同样的问题。我在Ubuntu 12.04 64位上进行交叉编译,工具链需要ia32-libs才能在64位系统上运行。

请参阅http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/

答案 1 :(得分:17)

修复,使用:

sudo apt-get install gcc-arm*

答案 2 :(得分:11)

CodeSourcery约定是对所有可执行文件使用前缀arm-none-linux-gnueabi-,而不是您提到的gcc-arm-linux-gnueabi。因此,CodeSourcery gcc的标准名称为 arm-none-linux-gnueabi-gcc

安装CodeSourcery G ++后,需要将CodeSourcery目录添加到PATH

通常,我更喜欢将CodeSourcery安装到像/opt/arm-2010q1这样的目录中。如果您不知道安装它的位置,可以使用locate arm-none-linux-gnueabi-gcc找到它,但是在sudo updatedb正常工作之前,您可能需要强制使用locate更新您的定位数据库。

确定安装CodeSourcery的位置后,通过编辑~/.bashrc添加PATH,如下所示:

PATH=/opt/arm-2010q1/bin:$PATH

此外,定义

是习惯和非常方便的
CROSS_COMPILE=arm-none-linux-gnueabi-

在你的.bashrc中,因为定义了CROSS_COMPILE,大多数工具会自动使用适当的编译器进行ARM编译,而无需你做任何事情。

答案 3 :(得分:7)

当尝试在VM下的ubunto 14.04.03 64bit 上交叉编译raspberry pi内核时,

出现了同样的错误。找到了解决方案here

- 在Ubuntu框上安装用于交叉编译的软件包。

ms-MY

- 下载工具链

sudo apt-get install gcc-arm-linux-gnueabi make git-core ncurses-dev

- 将工具链添加到您的路径

cd ~
git clone https://github.com/raspberrypi/tools

注意路径命令中的x64版本

答案 4 :(得分:6)

如果您使用的是64位操作系统,那么您需要安装这些额外的库。

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0

答案 5 :(得分:5)

我也遇到了同样的问题,并在安装以下依赖项后解决了这个问题:

sudo apt-get install lib32z1-dev

答案 6 :(得分:3)

如果你使用64位版本的ubuntu或debian(参见例如' cat / proc / version')你应该只使用64位交叉编译器,如果你克隆了

git clone https://github.com/raspberrypi/tools

然后64位工具在

tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64

将该目录用于gcc-toolchain。 我在这里可以获得一个有用的编译教程Building and compiling Raspberry PI Kernel(使用上面的-x64路径作为$ {CCPREFIX})

答案 7 :(得分:2)

有点违反直觉。工具链叫做gcc-arm-linux-gnueabi。要调用这些工具,请执行以下操作: arm-linux-gnueabi-xxx

其中xxx为 gcc ar ld

答案 8 :(得分:1)

尝试以下命令:

which gcc-arm-linux-gnueabi

该命令很可能安装在/usr/bin

答案 9 :(得分:1)

您已经在运行x86_64用户空间的盒子上安装了为i686编译的工具链。

使用i686 VM。

答案 10 :(得分:0)

我不得不在Ubuntu中为ARM交叉编译C代码。这对我有用:

$ sudo apt install gcc-arm-none-eabi

稍后,在qemu仿真器上对其进行测试

#Install qemu
sudo apt-get install qemu qemu-user-static qemu-system-arm

#Cross compile "helloworld.c"
$ arm-none-eabi-gcc --specs=rdimon.specs   -Wl,--start-group -lgcc -lc -lm -lrdimon -Wl,--end-group helloworld.c -o helloworld

#Run
qemu-arm-static helloworld