2009-05-01 116 views
28

Delphiでは、プロジェクトの検索パスに追加するか、ライブラリパスに追加することで、フォルダのソースコードを含めることができます。検索パスは現在のプロジェクトにのみ適用され、ライブラリパスはIDEで開いたプロジェクトに適用されます。Delphi検索パスとライブラリパスと参照パス

それ以外は、検索パスとライブラリパスの間に機能的な違いはありますか?

質問:私はプロジェクトAで使用されているソースを持つフォルダXを持っています。プロジェクトAの検索パスにそのフォルダを含めると、そのフォルダ内の特定のファイルを見つけることができません。ライブラリパスの下に含めると、プロジェクトAは正常にコンパイルされます。

今まで、私はいつもプロジェクト特有のものとグローバルなものだけが異なるという印象を受けました。

「ライブラリパス」と「ブラウジングパス」の機能の違いは何ですか?

+1

"自分をばかにする危険があります" - 愚か者はマニュアルを書いたそれらの猿です。誰もがDelphiのパスについて混乱しています。 – Ampere

答えて

27

私が知る限り、閲覧パスとは、ライブラリパスにないソースファイルを壊したり踏み込んだりするときにデバッガがファイルを探す場所です。

あなたが使っているthirdpartyコンポーネントがあるとします。ライブラリパスは、そのコンポーネントの事前コンパイルされたdcuファイルがあるディレクトリを指しています。あなたのプロジェクトはコンパイル時にこれらのdcuファイルを使用します。ビルドを行うたびに再コンパイルされないので、これは良いことです。

コンパイルされたdcuファイルを含めることで、thirpartyコンポーネントをデバッグする可能性が失われます。ソースファイルが参照パスにある場所へのパスを含めると、デバッガはソースを見つけ、そこに入ることができます。

vclのデフォルト設定では、これが表示されます。ライブラリパスには$(BSD)\ Libが置かれており、ブラウジングパスに$(BDS)\ SOURCE \ WIN32が置かれています。

更新:2種類の検索パスがあります。デバッガの検索パス。最初にコンパイル時にコンパイラがファイルを検索し、2つ目はデバッガがデバッグ中にソースファイルを探す場所です。

コンパイラは、ライブラリパスまたはプロジェクト検索パス内のファイルのみを検索します。 デバッガは、コンパイラの検索パス、ブラウズパス、プロジェクトのデバッグソースパス、およびグローバルデバッグ検索パスの識別子を検索します。

グローバルに指定する場合やプロジェクトを指定する際に違いはありません。

+0

それも私の理解であり、それは理にかなっています。しかし、それは実用的な問題として、3つすべてが同じであることを意味します...それは単なる組織の問題です。これは私のこの問題の経験とは一致しません。 – JosephStyons

+1

いいえ、その同じではありません。あなたのパスを単にブラウズパスに含めると、コンパイルが必要になります。 – Vegar

1

デバッガはライブラリパス内のファイルも検索します。