2013-07-29 23 views
0

我需要我的c库的网络库,因此我可以在iOSandroid上使用它。我一直在四处搜寻,并尝试将libcurl构建为静态库,但未成功。为iOS构建基于c的静态库

我用下面的设置

$ export CC="clang" 
$ export CFLAGS="-Wall -g -std=c11 -pipe -Os -gdwarf-2" 
$ ./configure --enable-static 
make install 

它,当我测试库,我的test.c的库运行正常建的。然而,当我在我的iOS项目运行它,我得到了CurlchkszEQ(long, CURL_SIZEOF_LONG)

不匹配,我认为这个问题是CURL_SIZEOF_LONG被设定为8,而长的iOS是4

有谁知道哪里出了问题与我的配置设置?

+0

你会得到什么样的“不匹配”?编译器错误?链接错误?运行时错误/崩溃?意外的计算结果?鼻恶魔? – 2013-07-29 05:07:03

回答

0

你想交叉编译iOS的libcurl,但这里的问题是,你使用clang默认情况下产生64-bitx86_64目标文件。

在需要跟iOS工具链(xcrun -sdk iphoneos clang)工作换句话说,提供正确的架构标志位[1](例如-arch armv7),并使用正确的sysroot路径。

我建议你参考:

[1]:您可能想要生成一个面向ARMv7,ARMv7s和i386(模拟器)架构的胖库。

+0

啊,脚本非常有用。谢谢。 – user2624628