zoukankan      html  css  js  c++  java
  • Yuchuan_Linux_C编程之六 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编写示例:

    1 app:main.o sub.o mul.o
    2   gcc main.o sub.o mul.o -o app
    3   gcc $^ -o $@
    4         
    5 %.o:%.c 
    6   gcc -c $< -o $@

    makefile中的自动变量:

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

          只能在规则的命令中使用

  • 相关阅读:
    牢骚与javascript中的this
    Vim 命令整理
    跟我一起写 Makefile
    Scikit-Learn模块学习笔记——数据预处理模块preprocessing
    Scikit-Learn模块学习笔记——数据集模块datasets
    Markdown 完全指南
    Shell命令行操作
    init_ir_技术实现篇
    ch2 创建和销毁对象
    ch6 影响 MySQLServer 性能的相关因素
  • 原文地址:https://www.cnblogs.com/YuchuanHuaying/p/11135275.html
Copyright © 2011-2022 走看看