1

Xcode 6 beta 6 を使用してアプリをビルドしています。手動でプレフィックス ファイルを追加し、ビルド設定で指定しました: $(SRCROOT)/$(PRODUCT_NAME)/MyApp-Prefix.pch. ファイルがコンパイルされ、そこで定義されているシンボルはエディターで未宣言として強調表示されません。しかし、プロジェクトをビルドすると、プレフィックス ファイルで定義されたマクロに対して「宣言されていない識別子」エラーが発生します。どうしたの?

私が試したこと:

  • Precompile Prefix Headers を YES に設定します (デフォルトは NO)
  • ビルド フォルダーをクリーンアップし、派生データ フォルダーを削除します。

興味深いのは、ビルド時に .pch ファイルが確実にコンパイルされることです。そこに構文エラーを導入すると、ビルド結果で呼び出されます。pch ファイルが正常にコンパイルされた場合、コンパイラは、それを使用するファイルをビルドするときに、それが見つからないかのように動作し始めます。

4

3 に答える 3

2

$(SRCROOT) を使用せずに、ファイルの名前を「プレフィックス ヘッダー」セクションに追加する必要があります。Precompile Prefix Headers を YES に設定するだけでは不十分です。

  1. 新しいファイルを作成: ⌘cmd+N
  2. iOS/Mac > その他 > PCH ファイル > YourProject-Prefix.pch.
  3. プロジェクト > ビルド設定 > 検索: "プレフィックス ヘッダー"。
  4. 「Apple LLVM 6.0」の下に、プレフィックス ヘッダー キーが表示されます。
  5. 「MyApp/MyApp-Prefix.pch」と入力します。( $(SRCROOT) なし!!! )
  6. プロジェクトの消去: ⌘cmd+⇧shift+K
  7. プロジェクトのビルド: ⌘cmd+B

詳細については、https://stackoverflow.com/a/26126065/3628317の回答をご覧ください。

XCode 6.1 で動作します。

于 2014-12-15T10:55:54.457 に答える
0

最初の推測として、.pch を変更したことを認識しないプリコンパイル済みヘッダーがあるため、プリコンパイル済みファイルの古いバージョンをまだ使用しています。

プロジェクトを消去してから、[ウィンドウ] > [オーガナイザー] > [プロジェクト] > [$(PRODUCT_NAME)] に移動し、派生データを削除します。

于 2014-08-28T19:39:12.720 に答える