关于Makefile的简单运用

本文介绍了在Linux环境下如何使用Makefile简化多文件项目的编译流程。通过生成目标文件(.o)并进行链接操作,可以有效提高开发效率。文章详细解释了预处理、编译、汇编及链接的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当在 l i n u x 下编写多文件的工程时,如果使用gcc x.c xx.c xxx.c -o xxxx将会很麻烦,特别是当程序中出现了某种错误的时候,可以通过makefile 来集中修改,集中编译。

这个是1.c 文件

这个是2.c文件

这个是Makefile文件,里面Target是目标文件名也就是编译过后想要运行时的文件名

Object是依赖文件,并且是.o文件

第四行"冒号"交代了归属关系

第五行开始输入命令前一定要打一个Tab键,一定一定。后面就按照普通的编译方法进行编译。

 

----------------------------------------------------------------------------------------------------------------------------

想讲讲为什么是用.o文件,或者说.o文件究竟是什么。

编译器对代码进行编译需要四个过程

预处理:#include 语句所包含的内容替换掉语句本身

               所有已定义的宏被展开

              根据#ifdef , #if等语句的条件是否诚成立取舍相关部分

具体编译方法就是 gcc -E a.c -o a.i

编译:编译器对源代码进行词法和语法的分析,优化等操作最后生成的汇编代码,这是整个过程中最重要的一步

编译方法:gcc -S a.c -o a.s 

汇编:利用汇编器对汇编代码进行处理,生成机器语言代码。

编译方法: gcc -c a.c -o a.o

当多文件同时编译时,只有先生成.o 文件,才能进行下一步的链接操作,这就是Object为什么要用.o 文件了

最后一步,链接:把各个模块之间相互引用的部分处理好

编译方法:gcc -o a a.c

例如要用到printf,就要让链接器并入printf.o,得到a 文件,变成可执行目标文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值