cmd 下编译运行 C 文件

笔者最近在做项目的时候需要用 Windows 的批处理程序编译运行 C 文件,之前都是在 IDE 进行代码的编写,知道在 Linux 用 gcc 可以搞定,现在想要在 cmd 下编译运行该如何办呢,因此上网搜了一下资料,用了一个比较简单的方法搞定。

假设笔者在计算机的 E 盘下新建了一个 C 文件 hello.c,代码如下:

#include<stdio.h>
main()
{
     printf("hello, world\n");
}

现需要编译运行该 C 文件,处理办法如下。

一、下载 VC++6.0

我们选择采用 VC++6.0 的 cl 命令 编译 C文件,同时该编译器比较轻便,笔者是从网上下载的绿色版,解压即可。

二、为 cl 命令配置环境变量

为了能够在任何位置使用 cl 命令,将其添加进环境变量,依次点击计算机->属性->高级系统设置->环境变量->path ,在 path 中添加进 VC++6.0 的 Bin 目录,如笔者系统为 win7,在 path 最前面添加 E:\VC6.0\VC98\Bin;(注意分号 ;)。

三、打开 cmd 编译 hello.c

打开 cmd (win+R,输入cmd) 编译 hello.c , 发现无法启动 CL.EXE,原因是计算机丢失 mspdb60.dll。
这里写图片描述

从网上下载 mspdb60.dll 文件,并拷贝到 VC++6.0 的 Bin 目录,如笔者的 E:\VC6.0\VC98\Bin

四、重新编译

重新编译 hello.c ,发现找不到头文件。
这里写图片描述

解决办法是设置头文件和 Lib 文件的路径,如直接在 cmd 下依次输入:

set INCLUDE=E:\VC6.0\VC98\Include
set LIB=E:\VC6.0\VC98\Lib

然后再编译 hello.c (E盘)

cl hello.c

运行生成的 hello.exe 文件

hello.exe

这里写图片描述

五、做成 .bat 批处理文件

可以将步骤四中的命令写入 .bat 批处理文件方便执行。
在桌面新建批处理文件 test.bat,在其中写入代码:

set INCLUDE=E:\VC6.0\VC98\Include
set LIB=E:\VC6.0\VC98\Lib
E:
cl hello.c
hello.exe
pause

点击运行 test.bat 即可实现步骤四中的功能,如果想要编译运行其他的 C 文件,只需要修改文件的路径和名称即可。

在Windows系统中,如果你想要在一个命令行界面(cmd)下编译多个目录下的C语言文件,你需要先确保已经安装了C编译器,如Microsoft Visual Studio的MinGW版本或是GCC。这里以MinGW为例,可以按照以下步骤操作: 1. **打开命令提示符**:点击“开始”菜单,输入`cmd`或`CMD`,然后选择“命令提示符”或“Windows PowerShell”。 2. **设置路径**:如果C编译器不在环境变量`PATH`中,需要添加其位置。你可以通过编辑系统环境变量来完成这一步,或者每次运行前指定完整路径。 3. **切换到包含源文件的目录**:使用`cd`命令进入你要编译的目录。例如,如果你的源文件位于`D:\MyProject\src`目录,就输入`cd D:\MyProject\src`。 4. **编译单个源文件**:假设你想编译名为`file1.c`的文件,你可以使用`gcc -o output_file_name file1.c`命令,其中`output_file_name`是你期望生成的可执行文件名。如果你有多个.c文件,可以依次执行这个命令,替换`file1.c`为你想编译文件名。 5. **递归编译所有.c文件**:如果你想同时编译当前目录及其子目录的所有`.c`文件,可以创建一个批处理文件(`.bat`),如下面的示例所示: ```batch @echo off for /r %%i in (*.c) do gcc -o ..\%%~ni %%i ``` 这个批处理会遍历当前目录及其所有子目录,并对每个`.c`文件执行编译。 6. **执行编译**:保存并运行这个批处理文件即可。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值