zoukankan      html  css  js  c++  java
  • Makefile 编写 tips

    1、变量赋值

    VARIABLE = value #在执行时扩展,允许递归扩展

    VARIABLE := value #在定义时扩展

    VARIABLE ?= value #只有在该变量为空时才设置该值

    VARIABLE += value #将值追加到变量尾端

    2、自动变量

    $@指代当前目标,就是Make命令当前构建的那个目标。比如,make foo的$@就指代foo

    $<指代第一个前置目标,比如规则为 t : p1 p2,那么$<就指代p1

    $?指代比目标更新的所有前置条件,之间用空格分隔,比如规则为t: p1 p2,其中p2的时间戳比t新,$?就指代p2

    $^指代所有前置条件,之间以空格分隔,比如规则为t : p1 p2,那么$^就指代 p1 p2

    $(@D)和$(@F)分别指向$@的目录名和文件名,比如,$@是src/input.c,那么$(@D)的值就为src,$(@F)的值就为input.c

    3、函数

    wildcard函数:src=$(wildcard *.c),搜索当前目录下所有以.c结尾的文件,生成一个以空格间隔的文件名列表,并赋值给src

    patsubst函数:obj=$(patsubst %.c, %.o, $(src)),匹配替代,将src中找到的所有.c结尾的文件,然后把所有.c转换成.o

  • 相关阅读:
    ubutu16.04编译安装apache
    python格式化字符串
    git服务器搭建
    merge into 导致序列跳号
    Apache 强制SSL访问
    pyhton之解析html的表格
    Two modules in a project cannot share the same content root报错解决方案
    hdoj
    hdoj
    QHUOJ
  • 原文地址:https://www.cnblogs.com/YaoDD/p/6185910.html
Copyright © 2011-2022 走看看