在构建的xcode 5 iOs7上,“curl_rule_01声明为具有负大小的数组”错误

时间:2013-11-25 09:17:20

标签: objective-c ios7 xcode5 libcurl

我正在尝试存档使用包含libCurl的BBHTTP库的iOS 7应用程序。内置错误:

curl_rule_01 declared as an array with negative size

curlrules.h中的代码行,错误:

[CurlchkszEQ(long, CURL_SIZEOF_LONG)];

我已经在curlbuild.h中尝试了这些更改

#define CURL_SIZEOF_LONG 4

#define CURL_SIZEOF_LONG 8`

由于64位,但它没有改变任何东西。

1 个答案:

答案 0 :(得分:7)

注意:您不得在curlbuild.h内更改这些宏!此标头在配置时生成,它记录(除其他外)哪个体系结构是目标。

如果你看一下BBHTTP提供的预构建静态库,你会发现它只针对ARMv7ARMv7s架构:

$ otool -fV External/libcurl.iOS/libcurl.iOS.appstore.a | grep Archive
Archive : External/libcurl.iOS/libcurl.iOS.appstore.a (architecture armv7)
Archive : External/libcurl.iOS/libcurl.iOS.appstore.a (architecture armv7s)

这些是32位架构。有关如何编译此静态库的更多详细信息,请参阅BBHTTP Dependencies

如果您使用iOS 7构建iOS应用程序作为部署目标,您当然可以在构建设置中配置默认​​arch。这些默认值包括32位切片和64位切片:

enter image description here

因此,在这种情况下,您必须包含 libcurl fat静态库,其中还包含 64位切片(又名arm64)。

BBHTTP作者的curl iOS build scripts可能会对您有所帮助。否则请参阅Nick Zitzmann libcurl pre-built