Windows 下使用 Mingw32-make 来执行 Makefile示例[通俗易懂]

文章目录先下载Mingw设置好环境变量确认安装环境状态gccmingw32-makeC工程测试main.cmath.ccall_math.c准备好Makefile文件执行Makefile执行前执行后运行main.exe执行Makefileclean清理文件执行前执行后整体运行演示GIFReferernces先下载Mingw这里使用的是mingw32不是64的,需要64位的自行搜索下载32位的可以参考我之前一篇的:C-BookNote-Win开发环境设置

大家好,又见面了,我是你们的朋友全栈君。


先下载 Mingw

这里使用的是 mingw32 不是 64 的,需要 64位 的自行搜索下载

32位 的可以参考我之前一篇的:C – Book Note – Win 开发环境设置


设置好环境变量

如下图设置,我是安装在:C:\MinGW 下的
在这里插入图片描述


确认安装环境状态


gcc

在 cmd 或是 ps(power shell) 中输入:gcc -v,出现下面类似的输出,就OK了,如果不行,就要确认一下环境变量是否设置好了 Mingw 的 bin 目录
在这里插入图片描述


mingw32-make

同样看看 mingw32-make 能否正常执行,输出类似一下信息就 OK 了
在这里插入图片描述

但是名字太长,还有个”-“号,不方便输入

我们将 mingw32-make.exe 复制出一份,并且改名为:make.exe,这样后续命令行中 make 就方便多了
在这里插入图片描述
再次测试一下:make,可以看到一样的输出信息
在这里插入图片描述


C 工程测试

准备好一下几个源码文件


main.c

// author : jave.lin
// file : main.c
#include <stdio.h>
extern void call_math();
int main() { 
   
    call_math();
    return 0;
}

math.c

#ifndef _MATH__C_
#define _MATH__C_
// author : jave.lin
// file : math.c
int add(int a, int b) { 
   
    return a + b;
}
int sub(int a, int b) { 
   
    return a - b;
}
int mul(int a, int b) { 
   
    return a * b;
}
int div(int a, int b) { 
   
    return a / b;
}
#endif

call_math.c

#ifndef _CALL_MATH__C_
#define _CALL_MATH__C_
// author : jave.lin
// file : call_math.c
#include <stdio.h>
extern int add(int, int);
extern int sub(int, int);
extern int mul(int, int);
extern int div(int, int);
void call_math() { 
   
    int a = 8, b = 2;
    printf("a = %d, b = %d\n", a, b);
    printf("add(a:%d, b:%d) = %d\n", a, b, add(a, b));
    printf("sub(a:%d, b:%d) = %d\n", a, b, sub(a, b));
    printf("mul(a:%d, b:%d) = %d\n", a, b, mul(a, b));
    printf("div(a:%d, b:%d) = %d\n", a, b, div(a, b));
}
#endif

准备好 Makefile 文件

# author : jave.lin
# file : Makefile
main : main.o math.o call_math.o
	gcc main.o math.o call_math.o -o main

main.o : main.c
	gcc main.c -c -o main.o

math.o : math.c
	gcc math.c -c -o math.o

call_math.o : call_math.c
	gcc call_math.c -c -o call_math.o


.PHONY : clean
clean:
	del *.o main.exe -rf

执行 Makefile

将 shell 当前目录定位在我们的 Makefile 所在目录下(方便一个 make 就搞定,这样就不用输入其他的目录信息)


执行前

在这里插入图片描述


执行后

在这里插入图片描述


运行 main.exe

在这里插入图片描述


执行 Makefile clean 清理文件


执行前

在这里插入图片描述


执行后

在这里插入图片描述


整体运行演示 GIF

在这里插入图片描述


Referernces

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/126583.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • MySQL数据库语法_mysql建立学生表数据库

    MySQL数据库语法_mysql建立学生表数据库mysql数据库基本语法DDL操作创建数据库语法:createdatabase数据库名;查看所有数据库语法:showdatabases;切换(使用)数据库语法:use+数据库名;创建一个表语法:createtable表名(字段名称1字段类型,字段名称2字段类型,字段名称3字段类型,…………);查看数据库中所有表语法:Showtables;查看表的结构语法:desc表名;添加字段语法:alterta

  • requiredargsconstructor_gridview控件的事件有哪些

    requiredargsconstructor_gridview控件的事件有哪些1ItemDataBound:数据绑定的时候(正在进行时)发生。2ItemCommand:用来响应Item模板中的控件的事件。如下代码aspx代码:[html]viewplaincopy<asp:RepeaterID=”Repeater1″runat=”server”DataSourceID=”LinqDataSource1…

    2022年10月12日
  • hostapd学习「建议收藏」

    hostapd学习「建议收藏」hostapd简介工作模式 作用Master(AP) 成为无线接入点提供无线接入服务Managed(STA) 作为客户端连接其他无线接入点Monitor 监听附近所有无线流量Ad-hoc 多台计算机直接相连WiFi的几种模式hostapd能够使得无线网卡切换为master模式,模拟AP(通常可以认为是路由器)功能,也就是我们说的软AP(SoftAP)。hostapd的功能就是作

  • excel怎么锁定部分单元格不被修改_如何锁定一部分单元格

    excel怎么锁定部分单元格不被修改_如何锁定一部分单元格https://jingyan.baidu.com/article/d45ad1486e094569552b8004.html保护Excel工作表我们通常会用审阅保护工作表,这样来保护全部的工作表内

  • 视图索引

    视图索引创建索引视图  视图也称为虚拟表,这是因为由视图返回的结果集其一般格式与由列和行组成的表相似,并且,在 SQL 语句中引用视图的方式也与引用表的方式相同。标准视图的结果集不是永久地存储在数据库中。查询每次引用视图时,Microsoft® SQL Server™ 2000 会动态地将生成视图结果集所需的逻辑合并到从基表数据生成完整查询结果集所需的逻辑

  • PhpStorm中报 “Cannot run program git.exe, 系统找不到指定的文件” 

    PhpStorm中报 “Cannot run program git.exe, 系统找不到指定的文件” 

    2021年10月10日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号