在命令行上编译 C 程序
发布时间:2026-08-11 | 浏览:6
访问此页面需要授权。 可以尝试 登录 或 更改目录 。
访问此页面需要授权。 可以尝试 更改目录 。
Visual Studio 生成工具包含一个 C 编译器,可用于创建从基本控制台程序到完整的 Windows 桌面应用程序和移动应用的所有内容。 Microsoft C++ (MSVC) 生成工具包含 C 和 C++ 编译器,其最新版本符合一些最新的 C 语言标准,包括 C11 和 C17。
本指南介绍如何使用文本编辑器创建基本的 Hello,World-style 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++ 生成工具” 工作负载),然后选择“安装” 。
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++ 生成工具” 工作负载),然后选择“安装” 。
MSVC 编译器 MSVC 对用于查找其使用的工具、标头和库的命令行环境有复杂的要求。 如果没有事先准备,无法在普通命令提示窗口中使用 MSVC 。 你需要开发人员命令提示窗口,这是常规命令提示窗口,其中设置了所有必需的环境变量 。 幸运的是,Visual Studio 为你安装了快捷方式来启动开发人员命令提示,这些命令提示为命令行生成设置了环境。 遗憾的是,开发人员命令提示快捷方式的名称和它们所在的位置在几乎所有版本的 Visual Studio 和不同版本的 Windows 中都是不同的。 你的第一个演练任务是找到要使用的正确快捷方式。
MSVC 对用于查找其使用的工具、标头和库的命令行环境有复杂的要求。 如果没有事先准备,无法在普通命令提示窗口中使用 MSVC 。 你需要开发人员命令提示窗口,这是常规命令提示窗口,其中设置了所有必需的环境变量 。 幸运的是,Visual Studio 为你安装了快捷方式来启动开发人员命令提示,这些命令提示为命令行生成设置了环境。 遗憾的是,开发人员命令提示快捷方式的名称和它们所在的位置在几乎所有版本的 Visual Studio 和不同版本的 Windows 中都是不同的。 你的第一个演练任务是找到要使用的正确快捷方式。
开发人员命令提示快捷方式自动为编译器和工具以及所有必需的标头和库设置正确的路径。 对于每个生成配置,其中一些值有所不同。 如果不使用其中一个快捷方式,则必须自己设置这些环境值。 有关详细信息,请参阅 通过命令行使用 MSVC 工具集 。 因为生成环境很复杂,所以我们强烈建议使用开发人员命令提示快捷方式,而不要自己生成。
根据使用的 Visual Studio 版本,操作说明会有所不同。 若要查看首选版本的 Visual Studio 的文档,请使用位于此页面目录顶部 版本 选择器。
在 Visual Studio 2022 中打开开发人员命令提示
如果在 Windows 10 或更高版本上安装 Visual Studio 2022,请打开“开始”菜单,然后选择 “所有应用 ”。 然后,向下滚动并打开“Visual Studio 2022”文件夹(不是 Visual Studio 2022 应用) 。 选择“VS 2022 开发人员命令提示”以打开命令提示窗口 。
在 Visual Studio 2019 中打开开发人员命令提示
如果在 Windows 10 或更高版本上安装 Visual Studio 2019,请打开“开始”菜单,然后选择 “所有应用 ”。 然后,向下滚动并打开“Visual Studio 2019”文件夹(不是 Visual Studio 2019 应用) 。 选择“VS 2019 开发人员命令提示”以打开命令提示窗口 。
在 Visual Studio 2017 中打开开发人员命令提示
如果在 Windows 10 或更高版本上安装 Visual Studio 2017,请打开“开始”菜单,然后选择 “所有应用 ”。 然后,向下滚动并打开“Visual Studio 2017”文件夹(不是 Visual Studio 2017 应用) 。 选择“VS 2017 开发人员命令提示”以打开命令提示窗口 。
在 Visual Studio 2015 中打开开发人员命令提示
如果在 Windows 10 或更高版本上安装Microsoft Visual C++ Build Tools 2015,请打开“开始”菜单,然后选择“ 所有应用 ”。 然后,向下滚动并打开“Visual C++ 生成工具”文件夹 。 选择“Visual C++ 2015 x86 本机工具命令提示”,打开命令提示窗口 。
如果使用其他版本的 Windows,请在“开始”菜单或“开始”页中查找包含开发人员命令提示快捷方式的 Visual Studio 工具文件夹。 还可以使用 Windows 搜索函数搜索 开发人员命令提示符 ,并选择与已安装的 Visual Studio 版本匹配的命令提示。 使用快捷方式打开命令提示窗口。
接下来,验证开发人员命令提示是否设置正确。 在命令提示符窗口中,输入 cl (或 CL ,编译器名称的大小写不重要,但编译器选项的大小写很重要)。 输出应类似于:
当前目录或版本号可能存在差异,具体取决于 Visual Studio 的版本和安装的任何更新。 如果上述输出类似于所见,则可以在命令行生成 C 或C++程序。
如果收到错误(如 “cl”)无法识别为内部或外部命令、可作程序或批处理文件 、错误 C1034 或运行 cl 命令时LNK1104错误,则表示你未使用开发人员命令提示符,或者安装 Visual Studio 时出现问题。 必须先解决此问题,然后才能继续。
如果找不到开发人员命令提示符快捷方式,或者输入 cl 时收到错误消息,则 Visual Studio 安装可能会遇到问题。 如果使用 Visual Studio 2017 或更高版本,请尝试重新安装 Visual Studio 安装程序中的“使用 C++ 的桌面开发”工作负荷 。 有关详细信息,请参阅 在 Visual Studio 中安装 C++ 支持 。 或者,从 Visual Studio 下载 页重新安装生成工具。 除非 命令运行,否则不要继续下一节 cl 。 有关 Visual Studio 的安装和故障排除的详细信息,请参阅 安装 Visual Studio 。
根据计算机上的 Windows 版本和系统安全配置,可能需要右键单击以打开开发人员命令提示符快捷方式的快捷菜单,然后选择“ 以管理员身份运行 ”以成功生成并运行通过以下演练创建的程序。
创建 C 源文件并在命令行上对其进行编译
在开发人员命令提示窗口中,输入 cd c:\ 以将当前工作目录更改为 C: 驱动器的根目录。 接下来,输入 md c:\hello 以创建目录,然后输入 cd c:\hello 以更改为该目录。 此目录保存源文件和已编译的程序。
在开发人员命令提示窗口中,输入 cd c:\ 以将当前工作目录更改为 C: 驱动器的根目录。 接下来,输入 md c:\hello 以创建目录,然后输入 cd c:\hello 以更改为该目录。 此目录保存源文件和已编译的程序。
在开发人员命令提示下输入 notepad hello.c 。 在弹出的记事本警报对话框中,选择“是” 以在工作目录中创建新的 hello.c 文件。
在开发人员命令提示下输入 notepad hello.c 。 在弹出的记事本警报对话框中,选择“是” 以在工作目录中创建新的 hello.c 文件。
在记事本中,输入以下代码行: #include <stdio.h> int main() { printf("Hello, World! This is a native C program compiled on the command line.\n"); return 0; }
在“记事本”菜单栏上,选择“文件” >“保存” 将 hello.c 保存到工作目录。
在“记事本”菜单栏上,选择“文件” >“保存” 将 hello.c 保存到工作目录。
切换回开发人员命令提示窗口。 在命令提示符下输入 dir 以列出 c:\hello 目录的内容。 目录列表中应显示源文件 hello.c ,如下所示: C:\hello>dir Volume in drive C has no label. Volume Serial Number is CC62-6545 Directory of C:\hello 10/02/2017 03:46 PM <DIR> . 10/02/2017 03:46 PM <DIR> .. 10/02/2017 03:36 PM 143 hello.c 1 File(s) 143 bytes 2 Dir(s) 514,900,566,016 bytes free 日期和其他详细信息在你的计算机上会有所不同。 如果看不到源代码文件 hello.c ,请确保已更改为所创建的 c:\hello 目录,并确保已在记事本中将源文件保存到此目录中。 另请确保你保存的源代码扩展名为 .c ,而不是 .txt 。
切换回开发人员命令提示窗口。 在命令提示符下输入 dir 以列出 c:\hello 目录的内容。 目录列表中应显示源文件 hello.c ,如下所示:
日期和其他详细信息在你的计算机上会有所不同。 如果看不到源代码文件 hello.c ,请确保已更改为所创建的 c:\hello 目录,并确保已在记事本中将源文件保存到此目录中。 另请确保你保存的源代码扩展名为 .c ,而不是 .txt 。
若要编译程序,请在开发人员命令提示下输入 cl hello.c 。 可以在编译器显示的输出信息行中看到可执行程序名称 hello.exe : c:\hello>cl hello.c Microsoft (R) C/C++ Optimizing Compiler Version 19.10.25017 for x86 Copyright (C) Microsoft Corporation. All rights reserved. hello.c Microsoft (R) Incremental Linker Version 14.10.25017.0 Copyright (C) Microsoft Corporation. All rights reserved. /out:hello.exe hello.obj 注意 如果收到错误(如 “cl” 无法识别为内部或外部命令、可运行的程序或批处理文件 ,错误 C1034,或错误 LNK1104),则开发人员命令提示符未正确配置。 有关如何解决此问题的信息,请返回“打开开发人员命令提示”部分 。 如果收到其他编译器或链接器错误或警告,请检查源代码以更正任何错误,然后保存它并再次运行编译器。 有关特定错误的信息,请使用此页面顶部的搜索框查找错误号。
若要编译程序,请在开发人员命令提示下输入 cl hello.c 。
可以在编译器显示的输出信息行中看到可执行程序名称 hello.exe :
如果收到错误(如 “cl” 无法识别为内部或外部命令、可运行的程序或批处理文件 ,错误 C1034,或错误 LNK1104),则开发人员命令提示符未正确配置。 有关如何解决此问题的信息,请返回“打开开发人员命令提示”部分 。
如果收到其他编译器或链接器错误或警告,请检查源代码以更正任何错误,然后保存它并再次运行编译器。 有关特定错误的信息,请使用此页面顶部的搜索框查找错误号。
若要运行程序,请在命令提示下输入 hello 。 程序将在显示以下文本后退出: Hello, World! This is a native C program compiled on the command line. 恭喜,你已通过命令行编译并运行了 C 程序。
若要运行程序,请在命令提示下输入 hello 。
恭喜,你已通过命令行编译并运行了 C 程序。
此 Hello, World 示例与 C 程序一样基本。 实际程序具有头文件和更多源文件、库中的链接,并执行有用的工作。
你可以使用本演练中的步骤生成自己的 C 代码,而不是键入所示的示例代码。 你还可以生成在其他位置看到的许多 C 代码示例程序。 若要编译包含更多源代码文件的程序,请在命令行上将它们全部输入:
cl file1.c file2.c file3.c
编译器输出名为 file1.exe 的程序。 若要将名称更改为 program1.exe ,请添加 /out 链接器选项:
cl file1.c file2.c file3.c /link /out:program1.exe
为了自动捕获更多编程错误,我们建议使用 /W3 或 /W4 警告级别选项进行编译:
cl /W4 file1.c file2.c file3.c /link /out:program1.exe
编译器 cl.exe 具有更多可用于生成、优化、调试和分析代码的选项。 如需快速列表,请在开发人员命令提示下输入 cl /? 。 你还可以单独编译和链接,并在更复杂的生成方案中应用链接器选项。 有关编译器和链接器选项及用法的详细信息,请参阅 C/C++ 生成参考 。
可以使用 NMAKE 和生成文件或 MSBuild 和项目文件在命令行上配置和生成更复杂的项目。 有关如何使用这些工具的详细信息,请参阅 NMAKE 参考 和 MSBuild 。
C 和 C++ 语言相似,但并不相同。 MSVC 编译器使用基本规则来确定编译代码时要使用的语言。 默认情况下,MSVC 编译器将以 .c 结尾的所有文件视为 C 源代码,将以 .cpp 结尾的所有文件视为 C++ 源代码。 若要强制编译器将所有文件视为与文件扩展名无关的 C,请使用 /TC 编译器选项。
默认情况下,MSVC 符合 ANSI C89 和 ISO C99 标准,但并非严格遵循。 在大多数情况下,可移植 C 代码编译并按预期运行。 编译器为 ISO C11 和 C17 中的更改提供可选支持。 若要使用 C11 和 C17 支持进行编译,请使用编译器标志 /std:c11 或 /std: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 。
想要尝试使用 Ask Learn 阐明或指导你完成本主题?
Last updated on 2025-11-05