使用clang xcode 9编译iOS armv7 + arm64的C代码

时间:2018-07-21 21:28:03

标签: ios c xcode9 jailbreak llvm-clang

我正在尝试为armv7和arm64制作一个二进制文件。 我正在使用此命令来编译一个简单的C文件:

clang -arch arm64 hello.c -o hello -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk

如何在此命令中添加armv7以支持iPad 4等旧设备?知道xCode 9在iOS 11中不再支持armv7吗?

2 个答案:

答案 0 :(得分:2)

只需添加-arch armv7

clang -arch armv7 -arch arm64 hello.c -o hello -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk

这将在两种架构下生成一个胖二进制文件。

也请注意,您可以使用xcrun来避免提供完整的系统根目录:

xcrun -sdk iphoneos clang -arch armv7 -arch arm64

答案 1 :(得分:0)

作为Siguza答案的更新,从Xcode 11开始获取SYSROOT的方法是:

xcrun --sdk iphoneos --show-sdk-path