14

ホームディレクトリにインクルードディレクトリを追加しました。ビルド ディレクトリから「ls -l ~/include」を実行できます。そのディレクトリを「ヘッダー検索パス」と「ユーザーヘッダー検索パス」の両方に追加しました。どちらの場所でも、非再帰と再帰の両方を試しました。しかし、xcode 4.5.1 はどのような状況でも、最初に記述されたヘッダー ファイルを見つけることができません。

ソース コードの calls.m には次のように記述されています。

 #include <directory/file.h>

「Lexical or Preprocessor issue 'directory/file.h' file not found.」というメッセージが表示されます。

しかし、cli から xcodebuild を実行すると、ソースをビルドするのに何の問題もありません。

インターネットで見つけた多くの提案を試しました

  • ドライブの /usr/ にインクルードを入れる
  • プロジェクトにインデックスを追加し、コピーも「ターゲットに追加」もマークされていないファイルを追加します。
  • xcode を再起動します。
  • すべての特定のパスを指定します。

しかし、まだ行きません。

何が問題ですか。xcodeのバグ?

4

2 に答える 2

20

同様の問題が発生しました。これは、ヘッダー検索パス用に定義したパスにスペースがあったためです。たとえば、検索パスとして次のように定義していました。

$(SRCROOT)/Frameworks/Headers

これは次のように拡張されていました。

/Users/skoota/Documents/Xcode Projects/My App/Frameworks/Headers

ご覧のとおり、パス内にはスペースがあり($(SRCROOT)変数を使用しているため、すぐにはわかりません)、コンパイラーはスペースを特に認識しません。検索パスを次のように変更することで、この問題を解決しました。

"$(SRCROOT)"/Frameworks/Headers

$(SRCROOT)(スペースをエスケープする引用符に注意してください)。これは現在、次のように拡張されています。

"/Users/skoota/Documents/Xcode Projects/My App"/Frameworks/Headers

"埋め込まれたマークでは少し奇妙に見えますが、これは完全に機能します。これは私が理解するのに時間がかかったので、うまくいけばそれが役立つでしょう!

于 2012-12-19T06:13:19.983 に答える
5

これは通常、ディレクトリのパスにスペースが含まれている場合に発生します。この問題を解決するには、パスを二重引用符で囲みます。

プロジェクト ディレクトリを使用する場合は、次を使用する必要があります$PROJECT_DIR。フォルダ内も検索する場合は、再帰を有効にします。または、使用することができます$(SRCROOT)

于 2014-05-27T11:04:04.223 に答える