makefile

makefile 语法“

Makefile中代码格式:

目标对象:依赖对象

         要生成目标对象所执行的命令

makefile 就是顺序执行的一层一层的关系,你可以理解为函数一层一层的调用关系,先指定编译输出结果,在指定这个结果依赖的文件,在去依赖的文件中得到一个结果,之后回到最终的结果里面,就是相当函数的一层层的调用关系,最后得到一个想要的产物,注意互相依赖的关系

Makefile文件中的代码分析为:

第1行:最终要生成的目标文件Calculate文件依赖于main.o文件和calculate.o文件

第2行:gcc方式编译代码,目标文件是Calculate,源文件是main.o和calculate.o

第3行:生成Calculate文件所依赖的文件main.o又依赖于main.c

第4行:gcc方式编译生成目标文件main.o

第5行:生成Calculate文件所依赖的文件calculate.o又依赖于calculate.c

第6行:gcc方式编译生成目标文件calculate.o

第7行:.PHONY后面的clean表示的是一个伪造的目标,并不是真正目标文件的依赖

第8行:目标对象clean不依赖于任何依赖对象,因为clean是一个伪目标

第9行:生成clean要执行的代码,即调用make clean命令时,执行代码rm –rf *.o Calculate
 

===============makefile debug 小技巧

$(warning "test")

$(error "test")

$(warning TEXT...)

Ø        函数功能:函数“warning”类似于函数“error”,区别在于它不会导致致命错误(make不退出),而只是提示“TEXT…”,make的执行过程继续。

Ø        返回值:空

Ø        函数说明:用法和“error”类似,展开过程相同
 

$(error TEXT...)
Ø        函数功能:产生致命错误,并提示“TEXT…”信息给用户,并退出make的执行。需要说明的是:“error”函数是在函数展开式(函数被调用时)才提示信息并结束make进程。因此如果函数出现在命令中或者一个递归的变量定义中时,在读取Makefile时不会出现错误。而只有包含“error”函数引用的命令被执行,或者定义中引用此函数的递归变量被展开时,才会提示致命信息“TEXT…”同时退出make。
Ø        返回值:空

Ø        函数说明:“error”函数一般不出现在直接展开式的变量定义中,否则在make读取Makefile时将会提示致命错误。

接:https://blog.csdn.net/liaoshengshi/article/details/40453997

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值