web-dev-qa-db-ja.com

ヘッダー検索パスで「再帰的」をチェックするとはどういう意味ですか

私は多くのプロジェクトを参照してきましたが、ヘッダー検索パスにそれらのパスを追加することで参照しています。

私は「参照プロジェクト」の入門を通じて参照内容をフォローしてきました(たとえばZXingWidgetを含む)

そして、私は今それをたくさんやっています、しかし私は再帰のチェックを理解していません。

  1. これは何を意味するのでしょうか?
  2. パスの「再帰的」をいつチェックしますか?

ありがとう

24
Vincent Bacalso

Xcodeにヘッダーに使用するパスを指定すると、#includeまたは#importステートメントを使用するときにそのパスがチェックされます。ファイルがない場合は終了します。

パスを「再帰的」に設定している場合、Xcodeは、ファイルが見つからなければ、そこで見つかったフォルダーを検索します。

このように見えます:

enter image description here

22
Almo

1)ヘッダー検索パスに目的のパスを入力し、Enterをクリックします。

2)入力したパステキストをダブルクリックします。

3)ダイアログボックスの右側で[再帰]を選択します。

12
user2460799

私がそうであったように、ヘッダー検索パスrecursiveを選択すると、コンパイラのコマンドラインにどのような影響があるのか​​疑問に思っている人のために、-の-I引数を生成します。 指定されたパスをルートとするツリー内のすべてのディレクトリ。これにより、コンパイラのコマンドラインが非常に長くなり、そこにある他のものを探すことがほぼ不可能になります。したがって、recursiveを使用する場合は、指定するパスの下にあるディレクトリの数を検討する価値があります。

個々のファイルに対して-I../path/to/subproject/**コンパイラフラグとして指定しようとしましたが、それは機能しません(これが、Xcodeが拡張自体を行う理由です)。

(これはXcode 9.4.1にも当てはまります)

3
Perry

path(例:Header Search PathsLibrary Search PathsFramework Search Paths...)を設定すると、親フォルダーの1つへのパスを定義し、recursive/**がパスの最後に追加されます)を設定できます。たとえば、include/<target_name>の代わりにpathパラメータを使用して、includeBuildディレクトリ(またはそれ以上のrecursiveディレクトリ)にデファイリングできます。

注意:patchにスペースが含まれている場合-、\を使用してエスケープするか、パスを二重引用符で囲んでください""

1
yoAlex5