“VC++ 目录”属性页 (Windows)

使用此属性页告知 Visual Studio 在生成当前所选项目时要使用的目录。 若要为一个解决方案中的多个项目设置目录,请使用自定义属性表,如共享或重用 Visual Studio C++ 项目设置中所述。

若需要此页的 Linux 版本,请参阅 VC++ 目录 (Linux C++)

要访问“VC++ 目录”属性页,请执行以下操作

  1. 如果“解决方案资源管理器”窗口不可见,请在主菜单上选择“视图”>“解决方案资源管理器”

  2. 右键单击某个项目节点(而不是顶级解决方案)并选择“属性”以打开“属性页”对话框

  3. 选择“配置属性”>“VC++ 目录”属性页

VC++ 目录属性适用于项目,而不是顶级解决方案节点。 如果在“配置属性”下未看到“VC++ 目录”,请在“解决方案资源管理器”窗口中选择一个 C++ 项目节点

选中“项目”节点的解决方案资源管理器窗口的屏幕截图。

在“属性页”对话框中,选择“配置属性”>“VC++ 目录”。 会列出各种 C++ 目录,例如可执行目录、包括目录、库目录、源目录等。

跨平台项目的“VC++ 目录”属性页看起来会有所不同。 若要了解 Linux C++ 项目的特定信息,请参阅 VC++ 目录 (Linux C++)

如果不熟悉 Visual Studio 中的“项目属性”,建议先阅读在 Visual Studio 中设置 C++ 编译器和生成属性

“VC++ 目录”属性的默认设置取决于项目类型。 对于桌面项目,它们包括特定平台工具集的 C++ 工具位置以及 Windows SDK 位置。 可更改“配置属性”>“常规”页上的“平台工具集”和“Windows SDK 版本”

要查看任一目录的这些值,请执行以下操作:

  1. 选择“VC++ 目录”页中的其中一个属性。 例如选择“库目录”
  2. 选择属性值字段末尾的向下箭头按钮。
  3. 在下拉菜单中选择“编辑”

“库目录”属性下拉列表的详细信息,其中突出显示了“编辑”命令。

此时会看到如下所示的对话框:

“库目录”对话框的屏幕截图。

“库目录”对话框有一个库目录区域和一个计算值区域,后者显示所有宏展开后的路径值。 有一个继承的值区域,它显示从父级或项目继承的宏值。 有一个已选中的复选框,它显示“从父级或项目默认值继承”。 有一个宏按钮和一个“确定和取消”按钮。

使用此对话框查看当前目录。 不过如果希望更改或添加目录,最好使用“属性管理器”创建属性表或修改默认用户属性表。 有关详细信息,请参阅共享或重用 Visual Studio C++ 项目设置

如上所述,很多继承路径都以宏的形式提供。 若要检查某个宏的当前值,请选择对话框右下角中的“宏”按钮。 很多宏都取决于配置类型。 例如,同样的宏在调试生成和版本生成中得出的路径可能会有所不同。 若要了解如何检查宏值,请参阅用于生成命令和属性的常用宏

可在编辑框中搜索宏的部分或完全匹配项。 以下屏幕截图显示了包含“WindowsSDK”字符串的所有宏。 其中还显示了每个宏计算出的当前路径:

“库目录”对话框的屏幕截图,其中显示了巨集值列表。

会显示“库目录”对话框和已筛选的宏列表。 在结果中,可看到包含“WindowsSDK”字符串的宏,例如 $ ( Windows SDK _ Executable Path )、$ ( Windows SDK _ Include Path )、$ ( Windows SDK _ Library Path ) 等。 有一个继承的值区域,它显示哪些宏值是从父级或项目继承的。 有一个计算值区域,它显示在展开所有宏后的路径值。 有一个已选中的复选框,它显示“从父级或项目默认值继承”。 有一个宏按钮和一个“插入、确定和取消”按钮。

该列表在你键入内容时进行填充。 请勿按 Enter

若要详细了解宏以及为何要尽可能地使用宏而不是硬编码的路径,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性

若要了解如何检查宏的值,请参阅用于生成命令和属性的常用宏。 本主题还列出了常用的宏。

可以通过两种方式来定义自己的宏:

  • 在开发人员命令提示符处设置环境变量。 所有环境变量都将被视为 MSBuild 属性/宏。

  • .props 文件中定义用户宏。 有关详细信息,请参阅属性页宏

有关详细信息,请参阅 Visual Studio 项目中的属性继承,以及以下博客文章:VC++ 目录Visual Studio 2010 C++ 项目升级指南

常规

你还可以指定其他目录,如下所示。

可执行目录
在其中搜索可执行文件的目录。 对应于 PATH 环境变量。

包含目录
在其中搜索源代码中所引用的包含文件的目录。 对应于 INCLUDE 环境变量。

外部包含目录
在编译期间被视为外部或系统文件的包含文件的路径。 在生成最新状态检查时将跳过这些文件。 外部包含属性也使用这些路径。 若要详细了解如何在 IDE 中设置这些选项,请参阅 /external 编译器选项。

引用目录
通过 #using 指令在其中搜索源代码中所引用的程序集和模块(元数据)文件的目录。 对应于 LIBPATH 环境变量。

库目录
要在其中搜索库 (.lib) 文件的目录。 此搜索包括运行时库。 对应于 LIB 环境变量。 此设置不适用于 .obj 文件,若要链接到 .obj 文件,请在“配置属性”>“链接器”>“常规”属性页上选择“其他库依赖项”,然后指定文件的相对路径。 有关详细信息,请参阅链接器属性页

库 WinRT 目录
搜索用于通用 Windows 平台(UWP) 应用的 WinRT 目录文件的目录。

源目录
在其中搜索用于 IntelliSense 的源文件的目录。

排除目录
Visual Studio 在每次编译之前都会查询所有文件上的时间戳,确定自上次编译后是否修改过任何内容。 如果项目具备一些大型且稳定的库,则通过从时间戳检查中排除这些库,可以潜在地加快生成时间。

公共项目内容

公共包含目录
要自动添加到引用此项目的项目中的包含路径的一个或多个目录。

所有头文件都是公共的
指定是否要将公共目录或所有项目头文件自动添加到引用此项目的项目中的包含路径。

公共 C++ 模块目录
包含要在引用此项目的项目中自动可用的 C++ 模块或标头单元源的一个或多个目录。

所有模块都是公共的
指定是否让所有项目模块和标头单元在引用此项目的项目中自动可用。

共享设置

你可以与其他用户或在多台计算机上共享项目属性。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性