我正在尝试存档使用包含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位,但它没有改变任何东西。
答案 0 :(得分:7)
注意:您不得在curlbuild.h
内更改这些宏!此标头在配置时生成,它记录(除其他外)哪个体系结构是目标。
如果你看一下BBHTTP提供的预构建静态库,你会发现它只针对ARMv7
和ARMv7s
架构:
$ 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位切片:
因此,在这种情况下,您必须包含 libcurl fat静态库,其中还包含 64位切片(又名arm64
)。
BBHTTP作者的curl iOS build scripts可能会对您有所帮助。否则请参阅Nick Zitzmann libcurl pre-built。