windows使用makefile的三种方法

想再在windows上尝试makefile的可以试一试。注意需要下载好mingw、配置好gcc路径,才能成功使用make。
第1种方法只需要命令行,2、3种方法需要借助vscode实现。
当用户编译文件过多的时候,使用makefile可以帮助模块化编译文件,makefile是一个脚本文件,根据规则,来执行相应的脚本文件,实现自动化编译。学习使用makefile可以更深入地学习编译过程。虽然make方法在windows上不是主流方法,除开安装linux虚拟机,也有不少方式在windows上使用make工具。
如下是makefiel脚本和源文件结构:
在这里插入图片描述
具体脚本内容和Makefile内容如下:

'mian.c'
#include "stdio.h"
#include "src_a.h"
#include "src_b.h"

int main()
{
    funca();
    funcb();
    while(1)
    {
        ;
    }
    return 0;
}
#include "stdio.h"
'src_a.c'
void funca()
{
	printf("funca runing!!!\r\n");
}
'src_b.c'
#include "stdio.h"
void funca()
{
	printf("funca runing!!!\r\n");
}
'src_a.h'
#ifndef __SRC_A_H__
#define __SRC_A_H__
void funca();
'src_cb.h'
#endif
#ifndef __SRC_B_H__
#define __SRC_B_H__
void funcb();
#endif
'Makefile'
mian : main.o  src_a.o src_b.o   
	gcc main.o src_a.o src_b.o  -o main
 
main.o : main.c src_a.h src_b.h
	gcc main.c -c -o main.o
 
src_a.o : src_a.c 
	gcc src_a.c -c -o src_a.o
 
src_b.o : src_b.c
	gcc src_b.c -c -o src_b.o
 
.PHONY : clean
clean:
	del *.o -rf

makefile语法介绍
基本语句结构:

- - - -
target : 依赖文件 - -
编译工具(gcc) 输出文件所需依赖 控制符(-g -c -o) 输出文件名
  • -g 可执行程序包含调试信息,目的是为了给 GDB 工具调试程序使用。
  • -o 指定输出文件名,如不指定 -o,默认输出文件名为 a.out,产生执行文件。
  • -c 只编译不链接,产生 .o 文件,不产生可执行文件。

可执行程序包含调试信息,目的是为了给 GDB 工具调试程序使用

1.命令行安装chocolatey,使用choco install 安装make 命令

管理员权限启动cmd.exe,输入以下指令安装chocolatey

@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin

之后就可以用类似linux中apt-get的方式安装各种工具,此处用choco install安装make工具

choco install make

之后找到Makefile路径,使用make命令即可,最后可以运行main.exe
在这里插入图片描述

2.vscode中的makefile tools插件

在扩展中搜索makefile
在这里插入图片描述
安装后在侧边栏中会多出一个图标
在这里插入图片描述
然后配置tool提供的几个选项运行即可
在这里插入图片描述
在这里插入图片描述

3.配置vscode中的launch.json和tasks.json.

  1. launch.json中地址改为cwd地址后加"\main.exe"
  2. launch.json中添加最后一行"prelaunchTask:",名字与tasks.json中label保持一致
  3. tasks.json中command使用make
  4. 注意launch.json中miDebuggerPath是否是gdb
    在这里插入图片描述
    在这里插入图片描述

lauch.json和task.json设置教程
https://blog.csdn.net/fhqlongteng/article/details/127388105
Chocolatey安装make参考
https://juejin.cn/post/7179155710037458981

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐