Linux中makefile项目管理

Linux中makefile项目管理_第1张图片

一、makefile的编写:一个规则   两个函数  三个变量
1. 一个规则
        三要素: 目标, 依赖, 命令
        目标:依赖
            命令
        1) 第一条规则是用来生成终极目标的规则
                1>. 如果规则中的依赖不存在, 向下寻找其他的规则,
                2>. 更新机制: 比较的是目标文件和依赖文件的时间        
2. 两个函数
        1) 查找指定目录下, 指定类型的文件
                src=$(wildcard ~/aa/*.c)
        2)匹配替换函数
                obj=$(patsubst %.c, %.o, $(src))
3. 三个自动变量
        1)$<: 规则中的第一个依赖
        2) $^: 规则中的所有依赖
        3)$@: 规则中的目标
        只能在规则中的命令中使用
4. 模式规则
        %.o:%.c
            gcc -c $< -o $@

 

Linux中makefile项目管理_第2张图片
                子目标和终极目标的关系:
                更新目标的原则:

Linux中makefile项目管理_第3张图片

Linux中makefile项目管理_第4张图片3、makefile中变量的使用

      例如:

Linux中makefile项目管理_第5张图片

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

      makefile中的自动变量
      $<: 规则中的第一个依赖
      $@: 规则中的目标
      $^: 规则中的所有依赖
      只能在规则的命令中使用

你可能感兴趣的:(Linux基本命令)