Microsoft C++ 简介(针对 UNIX 用户)

本主题为不熟悉 Visual Studio 并希望通过命令行或 Visual Studio 来使用 C++ 提高工作效率的各种 UNIX 用户提供信息。 可以将 Visual Studio 与面向 Windows 的 Microsoft C++ 编译器一起使用。 还可以在 UNIX 环境(例如远程 Linux 计算机、MinGW-w64 和适用于 Linux 的 Windows 子系统)中将 Visual Studio IDE 与 GCC 或 Clang 配合使用。 若要在 Visual Studio 中使用 C++,必须安装“使用 C++ 的桌面开发”工作负载。 打开 Visual Studio 安装程序,以安装该工作负载,或者添加或删除可选组件。 如果要面向远程 Linux 计算机,还需要安装“使用 C++ 的 Linux 开发”工作负载。 对于 Android 或 iOS 开发,请安装“使用 C++ 的移动开发”工作负载。

首先使用命令行

可按使用 UNIX 命令行环境的相似方式从命令行使用 Microsoft C++ 编译器。 使用命令行 C 和 C++ 编译器 (CL.EXE)、链接器 (LINK.EXE) 以及包括 NMAKE.EXE(Microsoft 版 UNIX make 实用工具)在内的其他工具,从命令提示符进行编译。

在 UNIX 中,命令安装在常用文件夹中,例如 /usr/bin。 在 Visual Studio 中,命令行工具安装在 VC\bin 子目录及其子目录的 Visual Studio 安装目录中。 不同于 UNIX,这些工具在纯命令提示符窗口中不可用。 若要使用命令行工具,必须使用特殊的开发人员命令提示符来设置编译 C++ 程序所需的路径和其他环境变量。 有关详细信息,请参阅在命令行上生成 C/C++ 代码演练:在命令行上编译本机 C++ 程序

调试代码

可以从命令行或从 IDE 中将 Visual Studio 调试器用于 Microsoft C++ 项目。 使用 /Z7、/Zi、/ZI(调试信息格式)开关进行编译以启用单步执行源。 有关详细信息,请参阅调试本机代码使用 Visual Studio IDE 进行 C++ 桌面开发

对于使用 GCC 或 Clang 编译的程序,Visual Studio 调用 GDB、LLDB 或任何指定的自定义调试器。

Visual Studio 项目系统

Visual Studio 项目系统称为 MSBuild。 它使用 XML 格式的项目文件;C++ 项目文件的扩展名为 .vcxproj。 单个解决方案中内含的多个项目中存储了包含多个库和可执行文件的应用程序,其中每个库或文件都可以一组不同的编译器选项,或甚至以不同语言生成。 解决方案是容器的抽象概念,用来将多个项目组合在一起。 解决方案的相关信息存储在扩展名为 .sln 的解决方案文件中。 有关详细信息,请参阅Visual Studio 中的解决方案和项目使用 Visual Studio IDE 进行 C++ 桌面开发。 在主菜单中,选择“文件”>“新建”>“项目”以查看可用的 Visual Studio 项目模板。

从 Visual Studio 2017 开始,添加了对 CMake 项目的支持,以及用于将 Microsoft C++ 编译器与任意生成系统一起使用或与源文件(没有项目文件)的松散文件夹一起使用的选项。 有关详细信息,请参阅 Visual Studio 中的 CMake 项目Visual Studio 中的打开文件夹项目

Microsoft 专用的修饰符

Microsoft 编译器实现对标准 C 和 C++ 编程语言的多个扩展,以支持 Windows 操作系统编程。 这些扩展用于指定存储类特性、函数调用约定和基于寻址以及其他用途。 有关所有受支持的 C 和 C++ 扩展的完整列表,请参阅 Microsoft 专用的修饰符

可以使用 /Za 编译器选项禁用大多数特定于 Microsoft 的 C89 扩展。 仅当要编写代码以在需要符合 C89 的多个平台上运行时,才建议使用此选项。 有关 /Za 编译器选项的详细信息,请参阅 /Za/Ze(禁用语言扩展)。 有关 C 和 C++ 编译器符合性的详细信息,请参阅 Microsoft C/C++ 语言符合性非标准行为

预编译标头

Microsoft C 和 C++ 编译器提供预编译任何 C 或 C++ 代码(包括内联代码)的选项。 使用此性能功能,可以编译稳定的代码正文,在文件中存储已编译的代码状态,并在后续编译过程中将预编译代码和仍在开发的代码合并在一起。 每个后续编译的速度都更快,因为无需重新编译稳定的代码。

默认情况下,所有预编译代码都是在文件 pch.h 和 pch.cpp(Visual Studio 2017 及更低版本中的 stdafx.h 和 stdafx.cpp)中指定。 有关预编译标头的详细信息,请参阅创建预编译标头文件

有关详细信息,请参阅在 Windows 上运行 Linux 程序

另请参阅

项目和生成系统