常规属性页(项目)
本文适用于 Windows 的 Visual Studio 项目。 对于 Linux 项目,请参阅 Linux C++ 属性页参考。 对于 CMake 项目,请参阅 Visual Studio 中的 CMake 项目。 对于 Android 项目,请参阅常规项目属性 (Android C++)。 对于 Android 生成文件项目,请参阅常规项目属性(Android C++ 生成文件)。 在 Visual Studio 2019 中,非 UWP(Windows 运行时或通用 Windows 平台)项目的一些属性已移至高级属性页。
要打开项目的“属性页”对话框,请在解决方案资源管理器中选择项目(而非解决方案)。 接下来,从菜单栏中选择“项目”>“项目名称属性”菜单。 或者右键单击“解决方案资源管理器”中的项目节点,然后从快捷菜单中选择“属性”。
在“属性页”对话框中,“配置属性”>“常规”属性页根据项目类型显示项目属性。 根据项目类型,这些属性聚集在一两个标题下:
常规
项目默认值
常规
“常规”属性标题包括以下属性的一些组合:
目标平台
指定项目将在其中运行的平台。 例如,Windows、Android 或 iOS。 值“Windows 10”表示面向通用 Windows 平台的项目。 如果面向的是 Windows 的其他版本,则不会列出该版本且此字段中的值将仅显示为 Windows。 此属性是在你创建项目时设置的只读字段。
“目标平台版本”
指定用于生成项目的 Windows SDK 的版本。 仅当项目类型支持时,此属性才显示。 可以选择 10.0 以指定最新版本的 Windows SDK。 如果你的应用可以利用此 Windows SDK 版本中的功能,但仍可以在没有这些功能的早期版本上运行,可能会丢失一些功能,那么此属性的值和“目标平台最低版本”属性可能不同。 如果是这样,你的代码应在运行时检查其运行的平台版本,并禁用旧平台版本中不可用的功能。
最低目标平台。 版本
指定项目可以在其中运行的最低版本平台。 仅当项目类型支持时,此属性才显示。 如果你的应用可以利用较新 Windows SDK 版本中的功能,但仍可在较早版本上运行(可能会丢失一些功能),则可以设置此值。 如果设置为较低的值,你的代码应在运行时检查其运行的平台版本。 然后,禁用旧平台版本中不可用的功能。
C++ 项目系统不会强制实施此选项。 包含它是为了与其他语言(如 C# 和 JavaScript)保持一致,并为使用你的项目的任何人提供指南。 如果你使用在最低版本中不可用的一个功能,则 Microsoft C++ 不会生成错误。
Windows SDK 版本
对于 Windows 目标平台,此属性指定项目所需的 Windows SDK 的版本。 当 Visual Studio 安装程序安装 C++ 工作负载时,还会安装 Windows SDK 的所需部分。 如果计算机上有其他 Windows SDK 版本,已安装的每个版本都会出现在下拉列表中。
若要面向 Windows 7 或 Windows Vista,请使用值 8.1,因为 Windows SDK 8.1 对于那些平台是后向兼容的。 如果是以更低版本为目标,请在 targetver.h
中为 _WIN32_WINNT
定义适当的值。 对于 Windows 7,即 0x0601。 有关详细信息,请参阅修改 WINVER
和 _WIN32_WINNT
。
要生成 Windows XP 和 Windows 2003 Server 项目,你可以安装作为可选组件包含在 Visual Studio Installer 中的 Windows XP 平台工具集。 有关如何获取和使用此平台工具集的信息,请参阅配置适用于 Windows XP 的程序。 有关更改平台工具集的详细信息,请参阅如何:修改目标框架和平台工具集。
输出目录
指定链接器等生成工具将放置在生成过程中创建的所有最终输出文件的目录。 通常,此目录包含链接器、库管理器或 BSCMake 等工具的输出。 此属性在默认情况下是由宏组合 $(SolutionDir)$(Configuration)\
指定的目录。
若要以编程方式访问此属性,请参阅 OutputDirectory。
中间目录
指定编译器等工具将放置在生成过程中创建的所有中间文件的目录。 通常,此目录包含 C/C++ 编译器、MIDL 和资源编译器等工具的输出。 此属性在默认情况下是由宏 $(Configuration)\
指定的目录。
若要以编程方式访问此属性,请参阅 IntermediateDirectory。
目标名称
指定此项目生成的文件名称。 此属性在默认情况下是由宏 $(ProjectName)
指定的文件名。
目标扩展名
指定此项目生成的文件扩展名,例如 .exe
或 .dll
。 对于某些 Visual Studio 2019 项目类型,此属性已移至高级属性页。
清除时要删除的扩展名
“生成”>“清理”菜单命令从生成项目的配置的中间目录中删除文件。 生成系统会在你运行“清理”命令或重新生成时删除具有指定扩展名的文件。 生成系统还会删除生成的任何已知输出,无论该输出位于何处。 已删除的文件包括任何中间输出,如 .obj
文件。 使用分号 (;
) 分隔扩展名。 你可以在扩展名中指定通配符(*
或 ?
)。
若要以编程方式访问此属性,请参阅 DeleteExtensionsOnClean。 对于某些 Visual Studio 2019 项目类型,此属性已移至高级属性页。
生成日志文件
允许你指定生成项目时创建的日志文件的非默认位置。 默认位置由宏组合 $(IntDir)$(MSBuildProjectName).log
指定。 对于某些 Visual Studio 2019 项目类型,此属性已移至高级属性页。
可使用项目宏来更改目录位置。 有关详细信息,请参阅用于生成命令和属性的常用宏。
平台工具集
指定用于生成当前配置的工具集。 此属性允许项目面向不同版本的 Visual C++ 库和编译器。 默认情况下,Visual Studio C++ 项目是面向 Visual Studio 安装的最新工具集。 你可以选择由多个早期版本的 Visual Studio 安装的工具集之一。 一些较旧的工具集可以创建能够在 Windows XP 或 Vista 上运行的可执行文件。 有关如何更改平台工具集的详细信息,请参阅如何:修改目标框架和平台工具集。
启用托管增量生成
对于托管项目,此属性可在生成程序集时启用外部可见性的检测。 如果某个托管项目的更改对其他项目不可见,则不重新生成依赖项目。 对于包括托管项目的解决方案,此选项可以显著改善其中的生成时间。 在 Visual Studio 2019 项目中,此属性已移至高级属性页。
配置类型
指定项目输出及其所需工具。 在 UWP 项目中,此属性出现在“项目默认值”标题下。 有多种配置类型可供选择,具体取决于项目类型:
应用程序(.exe)
显示链接器工具集:C/C++ 编译器、MIDL、资源编译器、链接器、BSCMake、XML Web 服务代理生成器、自定义生成、预生成、链接前和生成后事件。
动态库(.dll)
显示链接器工具集,指定 /DLL
链接器选项,并将 _WINDLL
预处理器定义添加到 CL 命令行。
生成文件
显示生成文件工具集 (NMake)。
静态库(.lib)
显示存档程序工具集。 与链接器工具集相同,但会将链接器替换为存档程序,并省略 XML Web 服务代理生成器。
实用工具
显示实用工具集(MIDL、自定义生成、预生成和生成后事件)。
若要以编程方式访问此属性,请参阅 ConfigurationType。
C++ 语言标准
指定要使用的 C++ 语言标准。 默认值为 /std:c++14
。 指定 /std:c++17
可使用 C++17 功能,指定 /std:c++20
可使用 C++20 功能,指定/std:c++latest
可使用建议的 C++23 功能或其他实验功能。 有关详细信息,请参阅/std
(指定语言标准版本)。
C 语言标准
指定要使用的 C 语言标准。 默认值为旧版 MSVC,它实现 C89、部分 C99 和特定于 Microsoft 的扩展。 指定 /std:c11
可使用 C11 功能,指定 /std:c17
可使用 C17 功能。 有关详细信息,请参阅/std
(指定语言标准版本)
项目默认值
配置类型
指定项目输出及其所需工具。 在 UWP 项目中,此属性出现在“项目默认值”标题下。 有多种配置类型可供选择,具体取决于项目类型:
应用程序(.exe)
显示链接器工具集:C/C++ 编译器、MIDL、资源编译器、链接器、BSCMake、XML Web 服务代理生成器、自定义生成、预生成、链接前和生成后事件。
动态库(.dll)
显示链接器工具集,指定 /DLL
链接器选项,并将 _WINDLL
预处理器定义添加到 CL 命令行。
生成文件
显示生成文件工具集 (NMake)。
静态库(.lib)
显示存档程序工具集。 与链接器工具集相同,但会将链接器替换为存档程序,并省略 XML Web 服务代理生成器。
实用工具
显示实用工具集(MIDL、自定义生成、预生成和生成后事件)。
若要以编程方式访问此属性,请参阅 ConfigurationType。
MFC 的使用
指定 MFC 项目是静态还是动态链接到 MFC DLL。 对于非 MFC 项目,请选择“使用标准 Windows 库”。 在 Visual Studio 2019 项目中,此属性已移至高级属性页。
若要以编程方式访问此属性,请参阅 useOfMfc。
字符集
指定是应设置 _UNICODE
还是 _MBCS
预处理器宏。 在相应的情况下,还会影响链接器入口点。 在 Visual Studio 2019 项目中,此属性已移至高级属性页。
若要以编程方式访问此属性,请参阅 CharacterSet。
公共语言运行时支持
导致将使用 /clr
编译器选项。 在 Visual Studio 2019 项目中,此属性已移至高级属性页。
若要以编程方式访问此属性,请参阅 ManagedExtensions。
.NET 目标框架版本
在托管项目中指定要面向的 .NET Framework 版本。 在 Visual Studio 2019 项目中,此属性已移至高级属性页。
全程序优化
指定 /GL
编译器选项和 /LTCG
链接器选项。 默认情况下,此属性对于调试配置是禁用的,对于发布配置是启用的。 在 Visual Studio 2019 项目中,此属性已移至高级属性页。
Microsoft Store 应用支持
指定此项目是否支持 Windows 运行时(通用 Windows 平台,简称 UWP)应用。 有关详细信息,请参阅/ZW
(Windows 运行时编译)和 Windows Developer UWP 文档。
Windows 桌面兼容
使此 Windows 运行时项目的输出也支持桌面应用。 此属性设置项目文件中的 <DesktopCompatible>
值。 从 Visual Studio 2019 版本 16.9 开始,“Windows 桌面兼容”属性可用。