ubuntu系统下使用Makefile编译多文件
认识Makefile
什么是Makefile
Make:是一个解决大工程编译的工具
Makefile:就像是脚本文件一样,里面描述着哪些文件需要编译,哪些需要重新编译,它里面还可以执行系统命令。
使用时只需要一个make命令即可完成整个工程的自动编译。
它其实就是和我们平时用的IDE里面的编译功能是一样的,只不过这些IDE对其进行了封装,让我们看到的就是图形界面了,我们在 IDE中添加要编译的工程文件,然后点击按钮就完成了编译。
下面通过例子来进一步认识Makefile
假设我们完成设计一个以下工程,
①通过键盘输入两个整数,然后计算他们的和并将结果显示在屏幕上,
②在这个工程中我们有 main.c、input.c和 add.c这三个 C 文件和input.h、add.h这两个头文件。
③其中 main.c是主函数, nput.c 负责接收从键盘输入的数值, add.h进行任意两个数相加,
代码:
main.c
#include <stdio.h> #include <input.h> #include <add.h> int main (int argc, char *argv[]) { int a,b,num; input_init(&a, &b); num = add(a, b); printf("%d + %d = %d\n",a,b,num); }
input.c
#include <stdio.h> #include <input.h> void input_init(int *a, int *b) { printf("输入两个整数:"); scanf("%d, %d",a,b); printf("\r\n"); }
add.c
#include <stdio.h> #include <add.h> int add(int a, int b) { return (a+b); }
input.h
#ifndef _INPUT_H_ #define _INPUT_H_ void input_init(int *a, int *b); #endif
add.h
#ifndef _ADD_H_ #define _ADD_H_ int add(int a, int b); #endif
下面我们先用常规的方法编译文件–>gcc编译器将上面的main.c、 add.c 和 input.c进行多文件编译,如下
最后编译生成的可执行文件叫做main。执行./main,输入两个字查看结果。
下面再用编写Makefile来编译以上文件
1、 首先在此工程目录下创建一个名为Makefile的文件!一定要是这个文件名!!
Makefile如下:【换行位置不是空格,一定要是TAB】
1 2 3 4 5 6 7 8 9 10 11 12 | main: main.o input.o add.o gcc -o main main.o add.o input.o main.o: main.c gcc -c main.c input.o: input.c gcc -c input.c add.o: add.c gcc -c add.c clean: rm *.o rm main |
————————————————
版权声明:本文为CSDN博主「Jiasheng Zhong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43401028/article/details/106558536
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!