在 ARMv8A (AArch64) 机器上编译 ARMv7A (AArch32) 代码?

在 ARMv8A (AArch64) 机器上编译 ARMv7A (AArch32) 代码?

我在很多地方都看到 ARMv8A 支持向后兼容的 ARMv7A 代码(前者现在称为 AArch64,后者现在称为 AArch32)。

我正在运行 ARMv8A 机器(在 Raspberry Pi 4B 上,带有 BCM2835 SoC),但我想编写和调试用 ARMv7A 语言编写的 GNU 汇编代码。如何编译用 ARMv7A 编写的 .S 文件并在我的机器上运行它?

我希望

    gcc MyAsmFile.S -march=armv7-a

可以工作,但我收到以下错误:

    cc1: **error**: unknown value: 'armv7-a' for '-march'
    cc1: *note*: valid arguments are: armv8-a ... armv8.6-a native; did you mean '**armv8-a**'?

任何建议都将不胜感激!原因是我想专门练习 ARMv7A 代码,因为这是我们在工作中会用到的。

相关内容