2011-08-14 3 views
2

コンパイル時に次のコンパイルエラーが発生します。範囲 のうち分岐が範囲外にコンパイルエラー

/var/folders/3B/3BAjD+ANHHmfh-eIWrtXDU+++TI/-Tmp-/cc-hojnUD.s:1784380:branch (すべてをシミュレータにコンパイルする場合はOKです) /var/folders/3B/3BAjD+ANHHmfh-eIWrtXDU+++TI/-Tmp-/cc-hojnUD.s:1784372:branch 範囲外 /var/folders/3B/3BAjD + ANHHmfh-eIWrtXDU +++ TI/-Tmp-/cc-hojnUD.s:1784364:支店 範囲外 /var/folders/3B/3BAjD+ANHHmfh-eIWrtXDU+++TI/-Tmp-/cc-hojnUD.s:1784356:branch 範囲外

バリオ私たちは "Thumb"をオフにすることについて何かを読んでいます。このコンパイルオプションがどこにも見つからないので、この問題を解決できるかどうかはわかりません。

私には何もしていないものの、NSMutuable配列とstufを定義するかなり大きな初期化ファイル(50k行以上)があります。

このエラーのため、自分のアプリがiPhone用にコンパイルされることはありません。

私はこれについて何ができるのですか?

ps。私はApple LLVM 3.0でXcode 4.2を使用しています(ARMを使用しているため、コンパイラを変更できません)

多くの感謝!

+0

あなたのinitファイルは大きな機能ですか?そうであれば、関数をより小さな部分に分割し、マスター関数で部分を順番に呼び出すようにしてください。 –

+0

ありがとう、それは間違いなく助けになった。今、私はiPhoneにコンパイルすることができます。しかし、Profile for Buildを使用してInstrumentsを稼働させても、私はアップルにバグレポートを提出しました。あなたが答えとして私はそれをマークすることが喜んであなたのコメントを置くことができれば – user387184

答えて

0

(コメントから移動)あなたのinitファイルは大きな機能ですか?そうであれば、関数をより小さな部分に分割し、マスター関数で部分を順番に呼び出すようにしてください。

0

これは既知のリンカーのバグです(rdar:// 16186742)。問題はarmv7コンパイラで、ブランチアイランドを合成して16 MBを超えてジャンプする必要があり、ジャンプが正確に 16 MBになる場合です。回避策は、プロジェクトのビルドフェーズおよび/またはライブラリのソースファイルをライブラリ付きリンクバイナリセクションに再配置することです。いくつかの再調整をすれば、この問題はなくなるはずです。

関連する問題