ios - 无法为 arm (iOS) 交叉编译 C 库

标签 ios c xcode gcc clang

<分区>

我正在尝试交叉编译 libDSM对于 iOS,从 arm64 开始。

我已经下载了源代码并尝试使用以下方法对其进行配置:

export XCODEDIR=$(xcode-select -p)
export DEVROOT=${XCODEDIR}/Platforms/iPhoneOS.platform/Developer
export SDKROOT=$DEVROOT/SDKs/iPhoneOS.sdk
export CFLAGS="-arch arm64 -pipe -no-cpp-precomp -isysroot $SDKROOT -mios-version-min=10.0 -I$SDKROOT/usr/include/"
export LDFLAGS="-mthumb -arch arm64 -isysroot $SDKROOT -mios-version-min=10.0"

./configure --host arm-apple-darwin --prefix $PWD/build/arm64

它因这个错误而停止:

configure: error: C preprocessor "/lib/cpp" fails sanity check

configure.log 中的错误是:

configure:4504: checking how to run the C preprocessor
configure:4535: gcc -E  conftest.c
In file included from conftest.c:14:
In file included from /Users/pmacro/Downloads/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/include/limits.h:37:
In file included from /Users/pmacro/Downloads/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/usr/include/limits.h:63:
/Users/pmacro/Downloads/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/usr/include/sys/cdefs.h:761:2: error: Unsupported architecture
#error Unsupported architecture
 ^

configure.log 中较早的一条可能相关的消息是:

configure:3752: ./conftest

./configure: line 3754: ./conftest: Bad CPU type in executable

请注意,它对于 x86_64(我正在构建的平台)编译良好,但对于任何 arm 架构它都失败了。

我查看了 iOS 的交叉编译示例,它们似乎都遵循这些步骤。我正在运行预发布软件(macOS Sierra 和 Xcode 8),但在 Sierra 上运行 Xcode 7 时遇到同样的问题。感谢您的帮助。

最佳答案

问题是我需要在 CPPFLAGS 和 CFLAGS 中指定架构 (-arch arm64)。

关于ios - 无法为 arm (iOS) 交叉编译 C 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38836754/

相关文章:

c - 非阻塞套接字和io

ios - 我无法在 ios8 中将图片上传到亚马逊服务器?

iphone - 如何找出 Xcode 调试器(适用于 iPhone)中引发的异常?

ios - Facebook API : Unknown fields: name?

ios - 我应该使用什么 View Controller 来进行来回通信?

c - 让所有的 child 从另一个 child 线程 sleep

swift - Xcode 10 Struct Initializer autoComplete 不显示

ios - 使用 NSUserDefaults 保存 MKMapView 的 Region

ios - 取消选择不可见行

c++ - 我可以从 Mersenne Twister 获得当前种子吗?