zoukankan      html  css  js  c++  java
  • MakeFile

    1.基本语法规则:

      目标:依赖文件

           [Tab]command

           或  目标:依赖文件; command

    2.伪目标

      .PHONY: 目标  

      特点:伪目标的特点为总是被执行,故其依赖的目标总不如改目标新

           应用:

      1.无依赖文件

      .PHONY:clean

      clean:

        commands

      没有依赖文件,文件"clean"始终是最新的,命令永远不会执行;为避免这个问题,可使用".PHONY"指明该目标。

           避免和同名文件冲突(防止存在和PHONY执行目标的名称相同的文件, 避免和文件名重名),显示指出文件为伪目标,make clean

      2.有依赖文件

           all: prog1 prog2 prog3

      .PHONY: all

      prog1: prog1.o utils1.o

        cc -o prog1.c utils1.c

      prog2: prog2.o utils2.o
        cc -o prog2.c utils2.c

      prog3: prog3.o utils3.o
        cc -o prog3.c utils3.c

      输入make后,生成所有的文件

    3.自动生成依赖性

      main.o:main.c (defs.h可省略)

        gcc -MM main.c

    4.忽略错误

      exec:

        -cd /home/zhangfan

        pwd

    5.变量

      objects = program.o foo.o utils.o

      program: $(objects)   会展开

           定义变量用“=”,导致下文中对变量的定义影响上文

            “:=” 使得前面的变量不能使用后面的变量

    6.通配符

      objects = $(wildcard *.o)     *为通配符

    7.define关键字

      define two-lines

      echo foo

      echo $(bar)

      endef

    8.override指示符

      变量为通过make命令行参数设置,则Makefile将忽略这个变量的赋值,若想在Makefile中设置这类参数的值则使用override

      override <variable> = <value>

      override <variable> := <value>

  • 相关阅读:
    HDU 5115 Dire Wolf (区间DP)
    HDU 4283 You Are the One(区间DP(最优出栈顺序))
    ZOJ 3469 Food Delivery(区间DP好题)
    LightOJ 1422 Halloween Costumes(区间DP)
    POJ 1651 Multiplication Puzzle(区间DP)
    NYOJ 石子合并(一)(区间DP)
    POJ 2955 Brackets(括号匹配一)
    POJ 1141 Brackets Sequence(括号匹配二)
    ZOJ 3537 Cake(凸包+区间DP)
    Graham求凸包模板
  • 原文地址:https://www.cnblogs.com/chengxuyuandashu/p/3581914.html
Copyright © 2011-2022 走看看