「インクルードディレクトリ」と「追加のインクルードディレクトリ」の違いは何ですか


94

プロジェクトの構成プロパティの「VC ++ディレクトリ」の下に、「ディレクトリを含める」のエントリがあります。しかし、「C / C ++」オプションの下に、「追加のインクルードディレクトリ」と呼ばれる別のエントリがあります。ライブラリディレクトリでも同じことが起こります。

これら2つのエントリの違いは何ですか?

ここに画像の説明を入力してください ここに画像の説明を入力してください

回答:


48

これはVS2010で導入されたぎこちなさです。VC ++ディレクトリ設定は、以前はツール+オプション、プロジェクトとソリューション、VC ++ディレクトリにありました。マシンで構築されたすべてのプロジェクトに適用されるグローバル設定。それはまだありますが、プロジェクト設定で変更する必要があることを指摘します。VS2010でのビルドエンジンのオーバーホールの副作用により、msbuildでのビルドが可能になります。プロジェクトごとの設定を削除することは理にかなっているはずですが、既存のプロジェクトの多くが壊れてしまいます。

そのため、VC ++ディレクトリの設定をマシンのデフォルトとして扱うのがおそらく最善です。VSインストーラーによって自動的に事前設定されます。通常とは異なるディレクトリ検索順序が必要な場合にのみ、それをいじくり回し、カスタムの場所を最後に置きます。そうすることは非常に珍しい。

ただし、機能します。そして、それは最終的に利用されました。VS2012以降のプラットフォームツールセット設定を強化します。異なるコンパイラ、異なるリンカー、異なる#includeディレクトリ、異なるリンカー検索パス。1つの設定だけで変更されました。


3
うーん... gloablオプションはこの下に保存されるの事実ですが、これはプロパティシートでMicrosoft.Cpp.Win32.userあり、これだけです。プロジェクトまたは別のプロパティシートをアクティブにしているときに「VC ++ディレクトリ」エントリを編集すると、変更は.vcxprojファイルまたはそれぞれの.propsファイルに永続化され、グローバルまたはユーザー全体には適用されません。
Martin Ba

25

ディレクトリのインクルード環境変数に対応しますINCLUDE

ウィンドウに表示されるディレクトリ設定は、Visual Studioがソースコードファイルで参照されるインクルードファイルを検索するディレクトリです。環境変数INCLUDEに対応します。

一方で、追加のディレクトリのインクルード(つまり、コマンドライン引数を経由して渡される\Iオプション)。


19

インクルードパスの設定

VC ++ディレクトリ:インクルードディレクトリ

  • この値は、Visual Studioの外部で定義されているINCLUDE Windows環境変数から継承されます
    • 環境変数は次のいずれかです。コンピュータに対してグローバルまたはユーザーレベルのスコープを持つ
    • INCLUDEそしてLIB時に環境変数が作成されているMicrosoft WindowsのSDKが一緒にインストールされているVisual Studioの

C / C ++:追加のインクルードディレクトリ

  • プロジェクトレベルの設定です。ソリューション内のすべてのプロジェクトに対してこの値を定義する必要があります
  • この値はソース管理に永続化できます

その他の注意事項

どちらを使用すればよいですか?

インクルードディレクトリまたは追加のインクルードディレクトリを使用するかどうかの決定は、組織の開発プロセスによって異なります。私の意見では、それはより重要です:

  • 開発環境を一貫して確実に再作成できること(考えてみてください:ソースコードを別の開発者に引き渡す)
  • 組織内の開発者は一貫したアプローチを使用します

マクロに関する注意

  • C ++プロジェクト構成マクロ(C ++プリプロセッサ#defineディレクティブと混同しないでください)は、さまざまなソースからコンテンツを継承します。のようなマクロ...
    • $(Include)Windows環境変数から値を継承する
    • $(OutDir)Visual Studio IDE から値を継承する

参考文献

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.