- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这似乎是一个非常具体的问题,但中心思想非常广泛。
我有一个简单的 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/
我的应用程序有问题。我收到 7 个 Apple Mach-O 链接器错误。以下是错误: Undefined symbols for architecture armv7: "_OBJC_IVAR_
我是一名优秀的程序员,十分优秀!