用于ARMv7的OSX交叉编译库

时间:2014-10-17 20:00:53

标签: ios cross-compiling

我正在尝试为iOS应用程序编译库,但收到以下错误消息:

creating cache ./config.cache
checking for gcc... /Applications/Xcode.app/Contents/Developer/usr/bin/gcc -arch armv7
checking whether the C compiler (/Applications/Xcode.app/Contents/Developer/usr/bin/gcc -arch armv7  ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.

为什么armv7编译器无法创建可执行文件但它适用于i386和x86_64的任何想法?如何解决此错误?

1 个答案:

答案 0 :(得分:1)

什么图书馆?

我猜测OpenSSL的外观(BSD-generic32是告密者),如果是这样,只需使用OpenSSL-for-iPhone来构建它。

如果您感到好奇,那么帮助选择正确版本的重要部分位于build-libssl.sh脚本中。

更新:

有时,指定-arch是不够的。传递整个-target是有帮助的,特别是在编译C库时,或者通常部署在unix类型系统上的库。

尝试clang -target arm64-apple-ios ...clang -target armv7-apple-ios ...,然后使用lipo将这些库合并为一个具有多个架构支持的库。

例如,您可以使用clang -target armv7-apple-ios -dM -E - < /dev/null|less尝试可能的目标三元组(并检查由它们产生的定义,如果您感到好奇)。