【Linux C编程】第六章 makefile项目管理

举报
Yuchuan 发表于 2021/06/20 16:07:26 2021/06/20
5.9k+ 0 0
【摘要】 makefile项目管理相关知识

一、整体大纲

二、makefile的编写

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

1. 一个规则

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

2. 两个函数

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

3. 三个自动变量

        1)$<:规则中的第一个依赖
        2) $^:规则中的所有依赖
        3)$@:规则中的目标

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

4. 模式规则
        %.o:%.c
            gcc -c $< -o $@

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

三、makefile中变量的使用

       makefile编写示例:

app:main.o sub.o mul.o
  gcc main.o sub.o mul.o -o app
  gcc $^ -o $@
        
%.o:%.c 
  gcc -c $< -o $@

      makefile中的自动变量:

  • $<: 规则中的第一个依赖
  • $@: 规则中的目标
  • $^: 规则中的所有依赖

      只能在规则的命令中使用

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。