32

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

4

11 回答 11

33

固定,使用:

sudo apt-get install gcc-arm*
于 2015-11-02T09:02:08.620 回答
20

您是否在 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/

于 2013-09-14T11:06:28.013 回答
14

arm-none-linux-gnueabi-CodeSourcery 约定是对所有可执行文件使用前缀,而不是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 的安装位置后,通过如下编辑将其添加到 PATH ~/.bashrc

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

此外,定义是习惯性的,非常方便

CROSS_COMPILE=arm-none-linux-gnueabi-

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

于 2013-01-06T08:37:13.987 回答
6

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

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0
于 2015-01-06T09:13:15.940 回答
6

尝试在 VM 下的 ubunto 14.04.03 64bit上交叉编译树莓派内核时遇到相同的错误。解决方案在这里找到:

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

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

- 下载工具链

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

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

PATH=$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

注意路径命令中的 x64 版本

于 2015-08-17T18:17:00.450 回答
6

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

sudo apt-get install lib32z1-dev
于 2016-03-15T19:16:10.917 回答
3

如果您使用的是 ubuntu 或 debian 的 64 位版本(参见例如“cat /proc/version”),如果您克隆了,您应该简单地使用 64 位交叉编译器

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

然后64位工具在

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

将该目录用于 gcc-toolchain。此处提供了我遵循的有用的编译教程构建和编译 Raspberry PI Kernel(使用上面的 -x64 路径作为 ${CCPREFIX})

于 2016-02-28T12:51:08.323 回答
2

它有点违反直觉。该工具链称为 gcc-arm-linux-gnueabi。要调用这些工具,请执行以下命令:arm-linux-gnueabi-xxx

其中 xxx 是gccarld

于 2014-09-05T17:34:44.870 回答
2

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

使用 i686 虚拟机。

于 2013-09-13T04:43:08.487 回答
1

尝试以下命令:

which gcc-arm-linux-gnueabi

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

于 2013-01-06T08:15:54.307 回答
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

于 2020-03-04T15:58:24.180 回答