(参照のためにこの質問を投稿し、すぐに回答します)
Xcodeにヘッダー検索パスを追加する方法は?特に、この構文で含める場合:
include <myheader.h>
2つのオプションがあります。
Xcodeの設定で[設定]-> [場所]-> [ソースツリー]を確認します。ここで追加されるパスは、システムレベルのパスであり、すべてのプロジェクトに含めることができます。
プロジェクト情報のビルド設定でHEADER_SEARCH_PATHS
パラメーターを設定します。ここに"${SRCROOT}"
を再帰なしで追加しました。この設定は、ほとんどのプロジェクトに適しています。
2番目のオプションについて:
Xcodeは、GCC互換のコマンドセットを持つClangを使用します。 GCCにはオプション-Idir
があり、システムヘッダー検索パスが追加されます。また、このオプションには、Xcodeプロジェクトビルド設定のHEADER_SEARCH_PATHS
からアクセスできます。
ただし、この設定に追加されるパス文字列には空白文字を含めないでください。オプションはシェルコマンドにそのまま渡されるためです。
しかし、一部のOS Xユーザー(私のような)は、エスケープする必要がある空白を含むパスにプロジェクトを置くことができます。手動で入力した場合、/Users/my/work/a\ project\ with\ space
のようにエスケープできます。 "${SRCROOT}"
のような環境変数を使用するために、引用符でエスケープすることもできます。
または、.
を使用して現在のディレクトリを示します。 Webkitのソースコードでこのトリックを見ましたが、ビルド時に現在のディレクトリがプロジェクトディレクトリに設定されるかどうかはわかりません。
${SRCROOT}
は、Xcodeによって事前定義された値です。これは、ソースディレクトリを意味します。より多くの値は リファレンスドキュメント で見つけることができます。
PS。実際には、中括弧{}
を使用する必要はありません。 $SRCROOT
でも同じ結果が得られます。違いを知っているなら、私に知らせてください。
プロジェクトレベルの設定に関するEonilの回答をフォローします。ターゲットを選択し、[ビルド設定]タブを選択した状態では、ヘッダー検索パスの検索パスの下にリストが表示されない場合があります。この場合、検索バーで[基本]から[すべて]に変更すると、[検索パス]セクションにヘッダー検索パスが表示されます。
完全を期すために引用符を使用する。
"/Users/my/work/a project with space"/**
再帰的でない場合は、/**
この質問には答えがありますが、同じ問題が発生したときは、別の方法で解決しました。オプションCreate Folder references
を使用してフォルダーをコピーすると、この問題が発生しました。その後、build_pathにフォルダを追加する上記のソリューションが機能しました。ただし、Create groups for any added folder
オプションを使用してフォルダーを追加すると、ヘッダーが自動的に選択されました。