Visual Studio 生成工具包括一个 C 编译器,可用于创建从基本的控制台程序到完整的 Windows 桌面应用程序、移动应用等的各种程序。 Microsoft C/C++ (MSVC) 是 C 和 C++ 编译器,在其最新版本中符合一些最新的 C 语言标准,包括 C11 和 C17。
本演练演示如何使用文本编辑器创建“Hello, World”样式的 C 程序,然后在命令行上对其进行编译。 如果想要在命令行上使用 C++,请参阅演练:在命令行上编译本机 C++ 程序。 如果想要尝试 Visual Studio IDE 而不是使用命令行,请参阅演练:使用项目和解决方案 (C++) 或使用 Visual Studio IDE 进行 C++ 桌面开发。
若要完成此演练,必须安装 Visual Studio 或 Visual Studio 生成工具,以及可选的“使用 C++ 进行桌面开发”工作负载。
Visual Studio 是功能强大的集成开发环境,它支持用于多种语言和平台的功能齐全的编辑器、资源管理器、调试程序和编译器。 有关这些功能以及如何下载和安装 Visual Studio(包括免费的 Visual Studio Community 版本)的信息,请参阅安装 Visual Studio。
Visual Studio 生成工具只安装生成 C 和 C++ 程序所需的命令行工具集、编译器、工具和库。 它非常适合生成实验室或课堂练习,安装速度也相对较快。 若要仅安装命令行工具集,请从 Visual Studio 下载页下载 Visual Studio 生成工具,然后运行安装程序。 在 Visual Studio 安装程序中,选择“使用 C++ 进行桌面开发”工作负载(在旧版本的 Visual Studio 中,选择“C++ 生成工具”工作负载),然后选择“安装”。
安装这些工具后,你将使用另一个工具在命令行上生成 C 或 C++ 程序。 MSVC 对用于查找其使用的工具、标头和库的命令行环境有复杂的要求。 如果没有事先准备,无法在普通命令提示窗口中使用 MSVC。 你需要开发人员命令提示窗口,这是常规命令提示窗口,其中设置了所有必需的环境变量。 幸运的是,Visual Studio 为你安装了快捷方式来启动开发人员命令提示,这些命令提示为命令行生成设置了环境。 遗憾的是,开发人员命令提示快捷方式的名称和它们所在的位置在几乎所有版本的 Visual Studio 和不同版本的 Windows 中都是不同的。 你的第一个演练任务是找到要使用的正确快捷方式。
根据使用的 Visual Studio 版本,操作说明会有所不同。 若要查看 Visual Studio 首选项的文档,请使用“版本”选择器控件。 它位于此页面上目录表的顶部。
如果在 Windows 10 或更高版本上安装了 Visual Studio 2022,请打开“开始”菜单并选择“所有应用”。 然后,向下滚动并打开“Visual Studio 2022”文件夹(不是 Visual Studio 2022 应用)。 选择“VS 2022 开发人员命令提示”以打开命令提示窗口。
如果在 Windows 10 或更高版本上安装了 Visual Studio 2019,请打开“开始”菜单并选择“所有应用”。 然后,向下滚动并打开“Visual Studio 2019”文件夹(不是 Visual Studio 2019 应用)。 选择“VS 2019 开发人员命令提示”以打开命令提示窗口。
如果在 Windows 10 或更高版本上安装了 Visual Studio 2017,请打开“开始”菜单并选择“所有应用”。 然后,向下滚动并打开“Visual Studio 2017”文件夹(不是 Visual Studio 2017 应用)。 选择“VS 2017 开发人员命令提示”以打开命令提示窗口。
如果在 Windows 10 或更高版本上安装了 Microsoft Visual C++ 生成工具 2015,请打开“开始”菜单并选择“所有应用”。 然后,向下滚动并打开“Visual C++ 生成工具”文件夹。 选择“Visual C++ 2015 x86 本机工具命令提示”,打开命令提示窗口。
如果使用其他版本的 Windows,请在“开始”菜单或“开始”页中查找包含开发人员命令提示快捷方式的 Visual Studio 工具文件夹。 还可以使用 Windows 搜索功能搜索“开发人员命令提示”,然后选择与安装的 Visual Studio 版本匹配的命令提示。 使用快捷方式打开命令提示窗口。
接下来,验证开发人员命令提示是否设置正确。 在命令提示符窗口中,输入 (或 ,编译器名称的大小写不重要,但编译器选项的大小写很重要)。 输出应类似于:
当前目录或版本号可能有所不同,具体取决于 Visual Studio 的版本和所安装的任何更新。 如果上述输出与所看到的类似,则可以在命令行中生成 C 或 C++ 程序。
如果找不到开发人员命令提示快捷方式,或在输入 时收到错误消息,则说明 Visual Studio 安装可能有问题。 如果使用 Visual Studio 2017 或更高版本,请尝试重新安装 Visual Studio 安装程序中的“使用 C++ 的桌面开发”工作负荷。 有关详细信息,请参阅在 Visual Studio 中安装 C++ 支持。 或者,从 Visual Studio 下载页重新安装生成工具。 除非 命令运行,否则不要继续下一节。 有关 Visual Studio 的安装和故障排除的详细信息,请参阅安装 Visual Studio。
- 在开发人员命令提示窗口中,输入 以将当前工作目录更改为 C: 驱动器的根目录。 接下来,输入 以创建目录,然后输入 以更改为该目录。 此目录将保存源文件和编译的程序。
- 在开发人员命令提示下输入 。 在弹出的记事本警报对话框中,选择“是”以在工作目录中创建新的 文件。
- 在记事本中,输入以下代码行:
- 在“记事本”菜单栏上,选择“文件”>“保存”将 保存到工作目录。
- 切换回开发人员命令提示窗口。 在命令提示符下输入 以列出 目录的内容。 目录列表中应显示源文件 ,如下所示:
日期和其他详细信息在你的计算机上会有所不同。 如果看不到源代码文件 ,请确保已更改为所创建的 目录,并确保已在记事本中将源文件保存到此目录中。 另请确保你保存的源代码扩展名为 ,而不是 。
- 若要编译程序,请在开发人员命令提示下输入 。
你可以在编译器显示的多行输出信息中看到可执行程序的名称 hello.exe:
- 若要运行程序,请在命令提示下输入 。
程序将在显示以下文本后退出:
恭喜,你已通过命令行编译并运行了 C 程序。
此“Hello, World”示例是最基本的 C 程序。 现实世界中的程序具有头文件和更多源文件,且库中有链接,因此可以执行有用的任务。
你可以使用本演练中的步骤生成自己的 C 代码,而不是键入所示的示例代码。 你还可以生成在其他位置看到的许多 C 代码示例程序。 若要编译包含更多源代码文件的程序,请在命令行上将它们全部输入:
编译器输出名为 的程序。 若要将名称更改为 ,请添加 /out 链接器选项:
若要自动捕获更多编程错误,我们建议使用 /W3 或 /W4 警告级别选项进行编译:
编译器 cl.exe 具有更多可用于生成、优化、调试和分析代码的选项。 如需快速列表,请在开发人员命令提示下输入 。 你还可以单独编译和链接,并在更复杂的生成方案中应用链接器选项。 有关编译器和链接器选项及用法的详细信息,请参阅 C/C++ 生成参考。
可以使用 NMAKE 和生成文件或 MSBuild 和项目文件在命令行上配置和生成更复杂的项目。 有关如何使用这些工具的详细信息,请参阅 NMAKE 参考和 MSBuild。
C 和 C++ 语言相似,但并不相同。 Microsoft C/C++ 编译器 (MSVC) 使用基本的规则确定在编译代码时要使用的语言。 默认情况下,MSVC 编译器将以 结尾的所有文件视为 C 源代码,将以 结尾的所有文件视为 C++ 源代码。 若要强制编译器将所有文件视为与文件扩展名无关的 C,请使用 /TC 编译器选项。
默认情况下,MSVC 符合 ANSI C89 和 ISO C99 标准,但并非严格遵循。 在大多数情况下,可移植的 C 代码将按预期方式进行编译和运行。 编译器提供对 ISO C11/C17 中的更改的可选支持。 若要使用 C11/C17 支持进行编译,请使用编译器标志 或 。 C11/C17 支持需要 Windows SDK 10.0.20201.0 或更高版本。 建议使用 Windows SDK 10.0.22000.0 或更高版本。 可以从 Windows SDK 页下载最新的 SDK。 有关详细信息以及有关如何安装和使用此 SDK 进行 C 开发的说明,请参阅在 Visual Studio 中安装 C11 和 C17 支持。
MSVC 已弃用某些库函数和 POSIX 函数名。 这些函数仍然受支持,但首选名称已更改。 有关详细信息,请参阅 CRT 中的安全功能和编译器警告(级别 3)C4996。
演练:创建标准 C++ 程序 (C++)
C 语言参考
项目和生成系统
兼容性
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/goyykf/68546.html