web-dev-qa-db-ja.com

Visual StudioはC ++ヘッダーファイルをどこで検索しますか?

SourceForgeからC++アプリケーション(HoboCopy、好奇心が強い人)のコピーをチェックアウトし、コンパイルしようとしました。

Visual Studioは、特定のヘッダーファイルが見つからないと言っています。ソースツリーでファイルを見つけましたが、コンパイル時に見つけられるようにどこに置く必要がありますか?

特別なディレクトリはありますか?

83
Brian Sullivan

Visual Studioは、次の順序でヘッダーを探します。

  • 現在のソースディレクトリ。
  • [プロジェクトプロパティの追加インクルードディレクトリ](プロジェクト-> [プロジェクト名]プロパティ、C/C++ | Generalの下).
  • Visual Studio C++でディレクトリを含むの下でツールオプションプロジェクトとソリューションVC++ディレクトリ
  • Visual Studio(2015+)の新しいバージョンでは、上記のオプションは廃止され、デフォルトのインクルードディレクトリのリストはプロジェクトプロパティ構成VC++ディレクトリ

あなたの場合、ヘッダーがあるプロジェクトプロパティにディレクトリを追加します(Project PropertiesConfigurationC/C++一般追加のインクルードディレクトリ)。

102
Rob Prouse

実際、Visual Studio 2017コミュニティのあるWindows 10では、C++ヘッダーパスは次のとおりです。

  1. C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\include

  2. C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\ucrt

1番目には、<iostream><algorithm>などの標準C++ヘッダーが含まれます。 2番目には、<stdio.h><string.h>などの古いCヘッダーが含まれます。バージョン番号は、ソフトウェアに応じて異なる場合があります。

これが役立つことを願っています。

12
linrongbin

プロジェクトにVisual Studioプロジェクトファイルが付属している場合は、ヘッダーが見つかるように既に構成されているはずです。そうでない場合は、プロジェクトを右クリックして[プロパティ]を選択し、[C/C++]をクリックし、インクルードファイルを含むディレクトリを[追加のインクルードディレクトリ]に追加して、インクルードファイルディレクトリをプロジェクト設定に追加する必要があります編集ボックス。

11
Adam Rosenfield

これを Rob Prouse の投稿へのコメントとして追加しようとしましたが、書式設定がないために理解できませんでした。

Visual Studio 2010では、[ツール|オプション|プロジェクトとソリューション| VC++ディレクトリ]ダイアログは、[ツール>オプションでのVC++ディレクトリの編集は廃止されました]と報告します。

デフォルトの$(IncludePath)を本当に更新したい場合は、XMLファイルのいずれかの適切なエントリをハックする必要があります。

\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets\v100\Microsoft.Cpp.Win32.v100.props

または

\ Program Files(x86)\ MSBuild\Microsoft.Cpp\v4.0\Platforms\x64\PlatformToolsets\v100\Microsoft.Cpp.X64.v100.props

(おそらくマイクロソフト推奨ではありません。)

6
SteveWilkinson

Visual Studio 2015コミュニティにはバグがあるようです。 64ビットプロジェクトの場合、win32ビット構成追加のインクルードフォルダーリストにない限り、インクルードフォルダーは見つかりません。

5
Markus

問題を解決するために、より良い質問をしている新しい質問があります Visual Studioでインクルードパスはどのように機能しますか?

VisualStudioの新しいバージョンでそれを行う方法が明らかになっています

  • 現在のプロジェクトのみ(質問もここに設定されているため)
  • 新しいプロジェクトごとにデフォルトとして

2番目は、上記のSteve Wilkinsonの答えが説明していることであり、Microsoftが推奨するものではなく、彼自身が推測したものです。

ここで短いことを言うには、それを行いますが、ユーザーディレクトリでそれを行います

C:\ Users\UserName\AppData\Local\Microsoft\MSBuild\v4.0

xMLファイル内

Microsoft.Cpp.Win32.user.props

および/または

Microsoft.Cpp.x64.user.props

c:\ program files-ディレクトリではなく、Microsoftの変更されていないFactory-Fileが存在すると予想されるディレクトリ。

その後、VisualStudioでも同じように実行し、すべてが正常に行われます。

同様にそれを行う理由の詳細については、私の答え there を参照してください。

3
Pablo el Puro