Linux中makefile项目管理

Posted xuejiale

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中makefile项目管理相关的知识,希望对你有一定的参考价值。

一、整体大纲

技术图片

二、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]: 规则中的目标
  • $^: 规则中的所有依赖

      只能在规则的命令中使用

以上是关于Linux中makefile项目管理的主要内容,如果未能解决你的问题,请参考以下文章

使用 Makefile.am/Makefile.in 在 Ubuntu Linux 中构建 c++ 项目

Linux篇第四篇——Linux环境下的工具(make/Makefile+进度条小程序)

Linux中makefile项目管理

Linux C基础——” Makefile “ 文件管理大师你拜访过嘛?

Linux 编译安装源代码包

Linux系统开发工具(下) {调试器gdb,自动化构建工具make/Makefile,多文件编译,代码管理平台git}