加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux中makefile项目管理

发布时间:2020-12-14 01:11:45 所属栏目:Linux 来源:网络整理
导读:一、整体大纲 二、makefile的编写 一个规则? ?两个函数? 三个变量 1. 一个规则 ? ? 三要素: 目标,依赖,命令 ? ? 目标:依赖 ? ? 命令 ? ? 1) 第一条规则是用来生成终极目标的规则 ? ? ? ? ? ? a. 如果规则中的依赖不存在,向下寻找其他的规则, ?? ??? ??? ?b.

一、整体大纲

二、makefile的编写

一个规则? ?两个函数? 三个变量

1. 一个规则

? ? 三要素: 目标,依赖,命令
? ? 目标:依赖
? ? 命令
? ? 1) 第一条规则是用来生成终极目标的规则
? ? ? ? ? ? a. 如果规则中的依赖不存在,向下寻找其他的规则,
?? ??? ??? ?b. 更新机制: 比较的是目标文件和依赖文件的时间? ? ? ?

2. 两个函数

? ? 1)?查找指定目录下,指定类型的文件
? ? ? ? ? ?src=$(wildcard ~/aa/*.c)
? ? 2)匹配替换函数
? ? ? ? ? ? obj=$(patsubst %.c,%.o,$(src))

3. 三个自动变量

?? ??? ?1)$<: 规则中的第一个依赖
?? ??? ?2)?$^: 规则中的所有依赖
?? ??? ?3)[email?protected]: 规则中的目标

?? ??? ?只能在规则中的命令中使用

4. 模式规则
?? ??? ?%.o:%.c
? ? ? ? ? ? gcc -c $< -o [email?protected]

子目标和终极目标的关系:
更新目标的原则:

?

三、makefile中变量的使用

? ? ? ?makefile编写示例:

?

app:main.o sub.o mul.o
  gcc main.o sub.o mul.o -o app
  gcc $^ -o [email?protected]
        
%.o:%.c 
  gcc -c $< -o [email?protected]

? ? ? makefile中的自动变量:

  • $<: 规则中的第一个依赖
  • [email?protected]: 规则中的目标
  • $^: 规则中的所有依赖

? ? ? 只能在规则的命令中使用

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读