zoukankan      html  css  js  c++  java
  • Makefile 规则的使用

    1.Makefile格式

    //最终目标

    all: led.o //依赖

    arm-linux-ld -Tled.lds -o led.elf led.o //命令

    arm-linux-objcopy -O binary led.elf led.bin //命令

    //目标

    led.o : led.S//依赖

    arm-linux-gcc -g -o led.o -c led.S //命令

    .PHONY: clean

    //伪目标--无依赖

    clean:

    rm *.o led.elf led.bin //命令

    2.Makefile 变量

    使用变量前:
    app1 : app1 .o func1 .o func2.o
    gcc app1 .o func1 .o func2.o - o app1
    app2: app2.o func1 .o func2.o
    gcc app2.o func1 .o func2.o - o app2
    obj=func1 .o func2.o
    app1 : app1 .o $(obj)
    gcc app1 .o $(obj) - o app1
    app2: app2.o $(obj)
    gcc app2.o $(obj) - o app2

    3.makefile规则

    makefile中,用 除了 可以自 己定义变量外, 还可以使用
    存在系统已经定义好的默认变量。
    v $^ 代表所有的依赖文件
    v $@ 代表目标
    v $< 代表第一个依赖文件
    使用前:
    led.o : led.S
    arm- linux- gcc -g o led.o - c led.S
    使用后:
    led.o : led.S
    arm- linux- gcc -g o $@ - c $^

    4.%表示任意的名字--通用规则

    all:led.bin
    led.bin: led.o
        arm-linux-ld -Tled.lds -o led.elf led.o
        arm-linux-objcopy -O binary led.elf led.bin

    %.o : %.S
        arm-linux-gcc -g -o $@ $< -c

    .PHONY: clean
    clean:
        rm *.o led.elf led.bin led.dis

    5.Makefile回显

    Makefile#字符后的内 容被视作注释。
    hello: hello.c
    @gcc hello. c o hello
    @:取消回显 演示)

    6.文件名

    make命令默认在当 前目 录下寻找名字为
    makefile或者Makefile的工程文件, 名字
    不为这两者之一时, 可以使用 如下方法指
         make f 文件名

  • 相关阅读:
    python 连接操作mysql数据库
    (转)postfix疯狂外发垃圾邮件之分析与解决
    ansible 常用方法
    用python2.7.9 写个小程序搜索某个目录下行有某关键字
    python获取文件扩展名的方法(转)
    ceph 池管理
    UVALive 5412 Street Directions
    UVALive 3231 Fair Share
    UVA 11478 Halum
    2015 Multi-University Training Contest 4 hdu 5338 ZZX and Permutations
  • 原文地址:https://www.cnblogs.com/wxb20/p/6236324.html
Copyright © 2011-2022 走看看