インクルード ヘッダー ファイルとプロジェクトの依存関係の要件は何ですか?
これは非常に基本的な質問のように思えますが、問題の本質に迫ろうとしています。(目的: 設計、リファクタリング、自動化の可能性)。
さまざまなタイプのヘッダーを見てきました。
<c++ standard headers>
<core library headers>
<external library headers>
<local project headers>
- 「インクルード」ディレクトリを見た場合、ヘッダーが C++ 標準ヘッダーであることをどのように認識できますか?
[以前は、オプションまたはどこかに、参照へのパスを表示する場所がありました。もう見つからない。まだありますか? ]
外部ライブラリ ヘッダー (ライブラリ タイプのプロジェクト) を含める場合は、通常、次のすべてを行う必要があります。
a)「インクルード」ファイルの場所に関するプロジェクトの知識を与える
b) lib をリンクする
c) プロジェクトを依存関係としてソリューションに追加します。
私は a) と b) をプロパティ シートの参照を通じて行うことを好みます。もちろん、依存ライブラリのプロパティ シートには、依存関係、ライブラリ ディレクトリ、インクルード ディレクトリのリストがあります。(3つのステップすべてを行う必要がありますか?)
- ブーストのような「コア ライブラリ ヘッダー」を含める場合、ソリューションにブースト プロジェクトを含める必要はありません(プロジェクトに必要なファイルの場所を示すブーストのプロパティ シートがあります)。
どうして ??????
プロジェクトを依存関係としてソリューションに追加する必要がある場合は、どうすればわかりますか?
ライブラリを依存関係として追加する必要があるのはいつですか? (つまり、boost のようなライブラリを依存関係として追加する必要がないのはなぜですか?)
これらのライブラリには特別なものがあるので、それらを含める必要はありませんか?
ライブラリを作成するときに、ヘッダー ファイルを使用するすべてのソリューションにライブラリを依存関係として含める必要がないようにするには、どうすればよいですか?