首页 > 系统服务 > 详细

Linux- Makefile编程学习笔记

时间:2020-03-24 16:40:47      阅读:45      评论:0      收藏:0      [点我收藏+]

1. Makefile编程

Makefile中的目标分两类:

伪目标:只作为标签使用,本身没有任何意义!

常用的伪目标:

all:当前Makefile第一个目标是伪目标,一般喜欢使用all作为目标名!

clean:如果做清除操作,为了明确操作代码,目标可以命名为clean

目标:如果制定工程编译规则,这时使用的就是目标!

目标定义格式: target: 依赖文件

1)拥有自动推导规则!

编译过程中: 预处理、编译、汇编-->main.o  show.o  led.o  key.o-->链接-->app

2)使用Makefile制定编译规则的时候,一般用的是自动编译变量!

补充:

make   -f filename :指定filename文件作为make的执行对象!

 

2.1 自动编译变量

在编译过程中,每一个自动变量都固定表示某一个位置的值!

$@ 当前编译目标!<该变量固定存放当前目标的目标名>

$^ 当前目标所有依赖文件!

$< 当前目标的第一个依赖文件

$? 上一次编译完成之后,又修改过的依赖文件的集合

$+ 表示所有依赖文件,不会去掉重复的文件

$* 表示当前目标所有依赖文件!过滤重复依赖!<上层Makefile不支持>

Makefile中统配符不是*,而是%

2.2 Makefile的递归调用

某一个目录下的Makefile要去调用其他目录下的Makefile,用法如下:

make   -C   指定路径   执行目标   var=123

说明:

make :执行一个Makefile

-C :指定要执行那个路径下的Makefile

指定路径:要执行的Makefile文件所在的路径

执行目标:指定路径下的Makefile中的某一个目标

var=123 :给指定路径下的Makefile的传参   

注意:上面这种Makefile递归调用必须放在Makefile文件中编写,不能命令行独立编写!

注意:Makefile文件名和目标名不能相同!

Linux- Makefile编程学习笔记

原文:https://www.cnblogs.com/646087666-lxd/p/12559671.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!