ARM下有gcc编译器吗?

Is there a gcc compiler under ARM?

我知道如果我想为 ARM 设备编译程序,我需要一个在 x86 下运行并为 ARM 编译(交叉编译)的特殊版本的 gcc 有没有办法在 ARM 下为 ARM 编译?

考虑下载您选择的编译器的源代码。 Here 是一个包含您可以尝试使用的源的位置。

我可以看到有人在 x86 机器上使用 x86 交叉编译器来为您的本地基于 ARM 的系统编译 ARM 版本的编译器。然后您就可以在您的系统上使用本机版本了。

是的,有交叉编译器,是的,有本机编译器。例如,您可以购买 raspberry pi 并安装其中一个固定发行版,这将为您提供本机编译器,或者您可以使用 qemu 和 运行 为支持的众多系统之一构建的 arm 发行版通过 qemu 模拟(和 运行 一个本地编译器)...或者只是交叉编译。

如果您乐于从源代码编译,任何最新版本的 GCC 都可以在 ARM 设备上本地构建,以该 ARM 设备为目标。编译 GCC 的依赖性和代码库的大小可能会给您带来一些困难,但我会定期在我的 Raspberry Pi 2.

上构建最新的 GCC 开发分支

按照以下位置的说明进行操作:https://gcc.gnu.org/install/ 获取所需的先决条件,并在配置编译器时使用类似以下内容的内容:

  --with-cpu=cortex-a15 --with-float=hard --with-fpu=neon --with-mode=thumb

根据系统要求修改 --with-cpu--with-fpu 选项。

如果您正在寻找预构建的二进制文件,大多数 运行 在 ARM 上的发行版(当然还有 Debian 和 Ubuntu)都会为您提供可以安装的软件包,就像您的 x86 系统一样。

最近用于 Raspberry Pi 2 的 Debian 带有 gcc 4.6。对于更高级的功能,例如 NEON,您可以安装 gcc 4.8 或更高版本。不同 FPU 选项的示例编译命令是:

 gcc 4.6
 gcc  linpack.c cpuidc.c -lm -lrt -O3 -march=armv6 -mfloat-abi=hard -mfpu=vfp -o linpackPiA6
 gcc 4.8
  gcc  linpack.c cpuidc.c -lm -lrt -O3 -mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4 -o linpackPiA7