gpt4 book ai didi

iphone - 使用arm-apple-darwin10-llvm-gcc-4.2将C交叉编译为armv7

转载 作者:行者123 更新时间:2023-11-30 15:43:38 25 4
gpt4 key购买 nike

这似乎是一个非常具体的问题,但中心思想非常广泛。

我有一个简单的 C 语言的 hello world 控制台应用程序。我使用以下命令在 Mac OS X 上编译了它:

$ export PLATFORM=/Developer/Platforms/iPhoneOS.platform
$ $PLATFORM/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2 -o hello hello.c -isysroot $PLATFORM/Developer/SDKs/iPhoneOS5.0.sdk/

它编译成功,但给出此警告:

ld: warning: -force_cpusubtype_ALL will become unsupported for ARM architectures

现在,当我运行lipo -info hello时,我得到Non-fat file: hello is Architecture:arm

具体是哪个arm,具体如何编译为armv7?

最佳答案

A) “Lipo”仅适用于胖二进制文件(即多架构)。您在 Mach-O 文件、单一架构上运行它。如果您尝试“file hello”,它会告诉您“mach-o Executable arm”。

B) 如果没记错的话,“arm”是armv6。您可以通过指定“-arch armv7”编译为armv6。您还可以指定“armv7s”(针对 Apple A6 设备),现在还可以针对 5S/iPad Air/Mini 2 指定arm64(技术上是armv8)。尽管从技术上来说,所有 ARM 架构也兼容 v6,而 v7/v7s 只会有所不同用于 NEON/SIMD 指令。

C) 您可以使用不同的 -arch 说明符针对不同的体系结构(甚至 x86_64)进行多次编译,然后使用 lipo -create 将所有二进制文件融合到一个大二进制文件中(因此称为“fat”二进制文件),这将适用于所有设备。

关于iphone - 使用arm-apple-darwin10-llvm-gcc-4.2将C交叉编译为armv7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19818720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com