Linux——Make工程管理

目录

make简介

Makefile语法

make命令

 Makefile输入规则

普通输入

自定义变量输入

预定义变量与自动变量输入

模式规则输入(了解)

隐式规则输入(了解)


make简介

make是一种代码维护工具

功能:

  • 自动进行编译管理
  • 自动发现更新的文档,提高编译效率
  • 减少重复编译的时间

注:Makefile是make读入的唯一配置文件

Makefile语法

Makefile语法规则:

目标:依赖文件列表

<Tab>命令列表

Makefile语法规则解析:

目标:

产生文件的名称,可以是可执行文件,也可以是obj文件

依赖文件:

产生目标文件所需要的文件(可以没有,也可以有多个)

make命令

命令格式:

make [options] [targets]

[options] :

执行参数:辅助makefile执行

[targets]:

  • make命令指定目标
  • 例 make main

注:如不指定目标,默认实现makefile文件内第一个目标文件

 Makefile输入规则

普通输入

代码示例

自定义变量输入

格式:

变量名=变量值 

变量使用:

$(变量名)
代码示例

obj=main.o add.o
cc=gcc
target=main

$(target):$(obj)                 //可执行文件两个.o依赖文件
        $(cc) $(obj) -o $(target) //产生可执行文件
main.o:main.c main.h add.h
        $(cc) -c main.c -o main.o //产生obj文件
add.o:add.c add.h
        $(cc) -c add.c -o add.o//产生obj文件
clean:
        rm $(obj) $(target) //make clean 可清除make产生的可执行文件和obj文件

预定义变量与自动变量输入

常用预定义变量:

  • CC——编译器的名称
  • CFLAGS——C编译器的选项

常用自动变量输入:

  • $@——目标名
  • $<——依赖文件列表中的第一个文件
  • $^——依赖文件列表中除出去重复文件的部分

代码示例

obj=main.o add.o
target=main

$(target):$(obj)                 //可执行文件两个.o依赖文件
        $(cc) $^ -o $@ //产生可执行文件
main.o:main.c main.h add.h
        $(cc) -c $< -o $@ //产生obj文件
add.o:add.c add.h
        $(cc) -c $< -o $@//产生obj文件
clean:
        rm $(obj) $(target) //make clean 可清除make产生的可执行文件和obj文件

模式规则输入(了解)

  • 如果有很多组规则,只有文件名不同,可以采用模式规则简化Makefile
  • 在模式规则中的文件名须用 “%”表示

代码示例

obj=main.o add.o
target=main

$(target):$(obj)                 //可执行文件两个.o依赖文件
        $(cc) $^ -o $@ //产生可执行文件
%.o:%.c 
        $(cc) -c $< -o $@ //产生obj文件

clean:
        rm $(obj) $(target) //make clean 可清除make产生的可执行文件和obj文件

隐式规则输入(了解)

隐式规则指出所有“.o”文件都可自动由“.c” 来生成

代码示例

obj=main.o add.o
target=main

$(target):$(obj)                 //可执行文件两个.o依赖文件
        $(cc) $^ -o $@ //产生可执行文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白变形计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值