【Linxu Makefile】Makefile 学习

makefile中几个常见的自动变量:
$<:第一个依赖文件的名称;
$^:所有不重复的依赖文件,以空格分开;
$@:目标文件的完整名称;
$?:所有时间戳比目标文件新的依赖文件,并以空格分开;
mkdir -p $(@D):递归地创建 %.o 文件所在的目录。

objects = obj/loader.o \
          obj/gdt.o \
          obj/drivers/driver.o \
          obj/hardwarecommunication/port.o \
          obj/hardwarecommunication/interruptstubs.o \
          obj/hardwarecommunication/interrupts.o \
          obj/drivers/keyboard.o \
          obj/drivers/mouse.o \
          obj/kernel.o

%.o: %.cpp
	mkdir -p $(@D)
	g++ ${GPPPARAMS} -o $@ -c $<

mkdir -p $(@D):递归地创建 %.o 文件所在的目录。比如 obj/drivers/mouse.o$(@D) 的值为 mouse.o 前的目录的值,即 obj/drivers/,该语句将会递归地创建 obj 目录和 drivers 目录。

  • 递归地删除当前目录下所有的 exe 文件:find . -name '*.exe' -type f -print -exec rm -rf {} \;

    (1) “.” 表示从当前目录开始递归查找
    (2) " -name ‘*.exe’ " 根据名称来查找,要查找所有以 .exe 结尾的文件夹或者文件
    (3) " -type f " 查找的类型为文件
    (4) “-print” 输出查找的文件目录名
    (5) 最主要的是是 -exec 了,-exec 选项后边跟着一个所要执行的命令,表示将 find 出来的文件或目录执行该命令。

gcc中文手册

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值