プロジェクトの構成プロパティの[VC++ディレクトリ]の下に、[ディレクトリを含める]のエントリがあります。ただし、「C/C++」オプションの下には、「Additional Include Directories」という別のエントリがあります。ライブラリディレクトリでも同じことが起こります。
これら2つのエントリの違いは何ですか?
これは、VS2010で導入された厄介な点です。 VC++ディレクトリの設定は、ツール+オプション、プロジェクトとソリューション、VC++ディレクトリにありました。マシンでビルドされたすべてのプロジェクトに適用されるグローバル設定。まだありますが、プロジェクト設定で変更する必要があることを指摘しています。 VS2010のビルドエンジンオーバーホールの副作用。msbuildを使用したビルドが可能になります。プロジェクトごとの設定を削除することは論理的でしたが、それはあまりにも多くの既存のプロジェクトを壊すでしょう。
そのため、VC++ディレクトリの設定をマシンのデフォルトとして扱うのがおそらく最善です。 VSインストーラーによって自動的に事前設定されます。特別なディレクトリ検索順序が必要な場合にのみ、それをいじって、カスタムの場所を最後に置きます。そうすることは非常に珍しい。
ただし、機能します。そして、最終的には利用されました。 VS2012以降のプラットフォームツールセット設定を強化します。異なるコンパイラ、異なるリンカ、異なる#includeディレクトリ、異なるリンカ検索パス。ニースという設定を1つだけ変更しました。
Include Directories は、環境変数INCLUDE
に対応します。
ウィンドウに表示されるディレクトリ設定は、ソースコードファイルで参照されるインクルードファイルをVisual Studioが検索するディレクトリです。環境変数INCLUDEに対応します。
Additional Include Directories は、コマンドライン引数(つまり、\I
オプション)。
INCLUDE
Windows環境変数から継承されます。 ]INCLUDE
およびLIB
環境変数は、Microsoft Windows SDKがVisual Studio。Include DirectoriesまたはAdditional Include Directoriesを使用するかどうかは、組織の開発プロセスによって異なります。私の意見では、それはより重要です:
#define
_ディレクティブと混同しないでください)は、さまざまなソースからコンテンツを継承します。次のようなマクロ... $(Include)
はWindows環境変数から値を継承します$(OutDir)
はVisual StudioIDEから値を継承します