Makefile编写

makefile侧面说明一个人是否具备大型工程的能力。makefile帮助实现自动编译,提高软件开发效率。常使用Linux下GNU的make。

把源文件编译成中间代码文件(.o文件)叫编译(compile)。
把.o文件合成执行文件,叫链接(link)。

编译时需要语法正确、函数与变量声明正确。通常需要告诉编译器头文件的位置(头文件中声明,源文件中定义),只要语法正确,就可以编译出目标文件。一般来说,每个源文件对应一个目标文件。

链接时,主要链接函数(找函数实现)和全局变量。链接只需要目标文件,但源文件太多,生成目标文件太多,链接不方便,故打包成.a文件。

make命令执行,需要一个Makefile文件。

加入新的源文件,只需编译链接新的源文件即可。加入新的头文件,需要编译引用头文件的源文件,并链接程序。

target(目标文件):prexxxxx(所需文件)
[tab]command(需执行指令)
常见变量
$@–目标文件
$^–所有依赖文件
$<–第一个依赖文件

cc -c 源文件(c)
cc -o 目标文件(exe) 链接文件(o)
\换行符

make比较target和prexxx的日期,prexxx新或target不存在,则执行后续定义。

make clean(删除执行文件和目标文件)
make如何工作

objects = main.o kbd.o display.o \
insert.o search.o files.o utils.o
$(objects)

make自动推导

.PHONY:clean
clean:
-rm edit$(objects)

Makefile包含显示规则、隐晦规则、变量定义、文件指示和注释。

GNU的make工作时执行步骤
1读入所有Makefile
2读入被include的其他Makefile
3初始化文件的变量
4推导隐晦规则
5为所有目标文件创建依赖关系链
6决定哪些目标要重新生成
7执行生成命令

Makefile中只有一个最终目标

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值