1

XCode に Objective C プロジェクトがあります。ビルド時に、XCode はプレフィックス PCH ファイルを 2 回プリコンパイルします。初めて、引数を使用し、-x objective-c-header正常に動作します。2 回目は を使用し-x c-header、(Objective C コードを含むファイルが原因で) 失敗します。

同じように設定された別のプロジェクトがありますが、うまくビルドできます。(PCH は、Objective C で 1 回だけプリコンパイルされます。) 2 つのプロジェクトのビルド設定を並べて比較しましたが、関連する違いはありません。ターゲットのビルド設定を並べて比較しましたが、関連する違いはありません。

すべてのターゲットを消去して再構築しようとしましたが、うまくいきませんでした。XCodeを再起動しようとしましたが、うまくいきませんでした。のプロジェクト フォルダーを grepc-headerしましたが、ビルド ログにしか表示されませんでした。

何が原因でしょうか?

4

2 に答える 2

7

プロジェクトに複数の言語があるため、PCH ファイルが複数回再構築されています。Objective-C コンパイラで 1 回、ストレート C ファイルで 1 回、OBJC #ifdef の外側に Objective-C コードがあり、ストレート C コンパイラが昼食をとりました。

C++ ファイルがあった場合、おそらく 3 つの PCH コンパイルで終わるでしょう (IIRC -- 私がそれをいじってからしばらく経ちました)。

于 2010-11-04T03:25:23.913 に答える
3

私は自分の質問に答えるのが嫌いですが、私はそれを理解しました。プレフィックス ヘッダーのプリコンパイルを無効にして、作業を続行できるかどうかを確認しました。ビルドはまだ同じエラーで失敗しましたが、プロジェクトに持っていたことを忘れていた .c ファイルからファイルを含めると失敗しました。どうやら、この .c ファイルの存在が、このプロジェクトと他のプロジェクトの違いです。何が起こっているのかがわかったので、コードを 内に移動しました#ifdef __OBJC__。すべて問題ないようです。

于 2010-11-03T21:04:41.237 に答える