1

我想在我的 mac 上组装 Aarch64 armv8 程序集,并最终使用 qemu 运行它,也许稍后在像 raspberry pi 2 或 4 这样的真实设备上运行它。我不知道如何组装我要编写的代码,gcc、llvm-gcc 和 clang 似乎不支持 -arch=armv8 标志或类似的东西。所以我不能为目标架构构建,我怎么能做到这一点?

我正在运行 mac os 10.14.5。我也不介意找到适用于最近的 ubuntu 版本的解决方案,因为我有一个用于 linux 开发的 VM。

4

1 回答 1

4

Xcode 附带的 clang 版本支持-arch arm64. (或者armv7对于 32 位。)
请注意,如果您想使用任何库,它们也必须是 arm64。如果需要,您可以使用 调用 iOS 工具链xcrun -sdk iphoneos clang -arch arm64 [...],但是您还必须从一些 IPSW 中提取您想要的库并将它们填充到 qemu 中。

另请注意,上面将为您提供 Mach-O 二进制文件。对于您的 Raspberry Pi,您可能需要一个 ELF,并且您可能需要 gcc 而不是 clang。您应该能够从源代码构建 gcc 和 GNU binutils,使用--targetasaarch64-linux-gnuaarch64-none-elf,具体取决于您的目标。另一个注意事项:由于 macOS 默默地别名gccclang和许多工具依赖于它,你可能还想用类似的东西来构建这个工具链--program-prefix=aarch64-

于 2019-07-28T22:53:40.497 回答