2008-12-02 114 views
66

我從SourceForge中檢出了一個C++應用程序的副本(HoboCopy,如果您好奇)並嘗試編譯它。Visual Studio在哪裏查找C++頭文件?

Visual Studio告訴我它找不到特定的頭文件。我在源代碼樹中找到了這個文件,但是我需要把它放在哪裏,以便在編譯時找到它?

是否有特殊的目錄?

回答

87

Visual Studio的查找順序頭:

  • 在當前的源目錄。
  • 在項目屬性中的其他包含目錄中(在C++ |常規下)。
  • 在Visual Studio C++ 包含目錄工具選項項目和解決方案VC++目錄

在你的情況下,將標題所在的目錄添加到項目屬性中。

+2

不錯的答案,但我必須補充一點,在Visual Studio 2003中,您應該查看「工具|選項| VC++目錄」而不是「工具|選項|項目和解決方案| VC++目錄」。 – Graf 2010-11-25 18:27:18

+33

VS 2010中的預處理器僅在引用的包含語法(如#include「whatever.h」)的情況下才會查看當前的dir。使用尖括號(例如#include )省略當前目錄(http://msdn.microsoft.com/en-us/library/36k2cdd4(v=VS.100).aspx) – 2011-06-21 11:35:42

10

如果項目帶有Visual Studio項目文件,那麼應該已經配置該項目以爲您找到標題。如果沒有,您必須通過右鍵單擊項目並選擇屬性,單擊「C/C++」,並將包含包含文件的目錄添加到「其他包含目錄」中,將包含文件目錄添加到項目設置中編輯框。

6

試圖添加此作爲評論Rob Prouse的發佈,但缺乏格式化使其無法理解。

在Visual Studio 2010中,「工具|選項|項目和解決方案| VC++目錄」對話框報告「在工具>選項中編輯的VC++目錄已被棄用」,建議您使用相反直觀的屬性管理器。

如果你真的,真的要更新默認的$(INCLUDEPATH),你必須破解相應的條目在XML文件中的一個:

\ Program Files文件 (86)\的MSBuild \微軟.CPP \ V4.0 \平臺\ WIN32 \ PlatformToolsets \ V100 \ Microsoft.Cpp.Win32.v100.props

\ Program Files文件 (x86)的\ MSBu ild \ Microsoft.Cpp \ v4.0 \ Platforms \ x64 \ PlatformToolsets \ v100 \ Microsoft.Cpp.X64.v100.props

(可能不是Microsoft推薦的。)

1

存在一個新的問題是什麼擊中了問題的更好的要求How do include paths work in Visual Studio?

還有就是越來越顯露做到在VisualStudio中

  • 的新版本在當前項目中的方式只 (因爲問題也在這裏設置)以及
  • 作爲默認的每個新項目

第二個是Steve Wilkinson上面的答案解釋了什麼,正如他自認的那樣,而不是微軟會推薦的。

這裏要說它的shortway:這樣做,但在

c執行它在用戶目錄:\ Users \用戶名\ AppData \本地\微軟\的MSBuild \ v4.0的

在XML文件

Microsoft.Cpp.Win32.user.props

和/或

Microsoft.Cpp.x64.user.props

,而不是在C:\ Program Files文件 - 目錄,其中微軟的未修改出廠文件預計將駐留。

然後你這樣做,因爲VisualStudio也是這樣做的,一切都是正常的。

欲瞭解更多信息爲什麼要這樣做,請參閱我的答案there

4

似乎有一個錯誤在視覺 工作室  2015社區。對於64位項目,除非包含在win32位配置其他包含文件夾列表中,否則將找不到包含文件夾。

相關問題