我正在尝试为armv7和arm64制作一个二进制文件。我使用这个命令来编译一个简单的C文件:
clang -arch arm64 hello.c -o hello -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
如何将armv7添加到该命令中以支持像iPad4这样的旧设备?知道xCode 9在iOS 11中停止支持armv7吗?
只需添加-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
作为Siguza答案的更新,从Xcode 11开始获取SYSROOT的方法是:
xcrun --sdk iphoneos --show-sdk-path