2013-11-25 11 views
6

libCurlを含むBBHTTPライブラリを使用しているiOS 7アプリケーションをアーカイブしようとしています。内蔵のエラー:エラーでcurlrules.hでビルドされたxcode 5で "curl_rule_01が負のサイズの配列として宣言されました"というエラーが発生しました5 iOs7

curl_rule_01 declared as an array with negative size 

コード行:

[CurlchkszEQ(long, CURL_SIZEOF_LONG)]; 

私はcurlbuild.h

#define CURL_SIZEOF_LONG 4 

におけるこれらの変化でそれを試してみました〜

#define CURL_SIZEOF_LONG 8` 

64ビットですが、cha何でもいいよ。

+3

なぜ#define CURL_SIZEOF_LONG sizeof(long) 'ではないのですか? – trojanfoe

+0

はい、ありがとう!私はこの行をcurlbuild.hに追加し、今すぐアーカイブします。なぜlibCurlの図書館員がそれを他のやり方でしたのか分かりません。 – Yedy

答えて

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アプリケーションをビルドする場合は、ビルド設定でデフォルトのアーチが設定されているはずです。また64ビットスライスを含むように、このような場合には、あなたがlibcurlの脂肪静的ライブラリが含まれている必要があり

enter image description here

:そして、これらのデフォルト値は、32ビットスライス、プラス64ビットスライスを含めます(別名arm64)。

BBHTTPの著者のcurl iOS build scriptsがお手伝いします。それ以外の場合はNick Zitzmann libcurl pre-builtを参照してください。

+0

あなたの答えに感謝します。これは私に役立った:) – Guru

関連する問題