zoukankan      html  css  js  c++  java
  • Makefile的写法

    1.Makefile的规则

    1.1 格式

    目标:依赖
    
        命令
    
        ……

    必须注意的是,命令前面的不是空格,而是制表符Tab。

    1.2 伪目标

    makefile中把那些只包含命令,没有任何依赖的目标称为”伪目标”(phony targets)

    1 .PHONY: clean
    2 clean:
    3         rm *.o led.elf led.bin

    “.PHONY” 将“clean”目标声明为伪目标

    1.3 最终目标

    如果用户没有指定执行某一条规则,make会默认执行makefile中的第1条规则,而这条规则中的目标称之为:最终目标

    2.Makefile变量

    2.1 自己定义变量

    使用变量前

    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

    func1.o func2.o多次出现,用变量代替。

    使用变量后

    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

    2.2 系统默认的变量

    $^:代表所有的依赖文件
    $@:代表目标
    $<:代表第一个依赖文件

    使用变量前:

    led.o : led.S
        arm-linux-gcc -g –o led.o -c led.S

    使用变量后:

    led.o : led.S
        arm-linux-gcc -g –o $@ -c $^

    3.通用规则(%)

    led.o:led.s
        arm-linux-gcc -g -o led.o -c led.S
    
    main.o:main.s
        arm-linux-gcc -g -o main.o -c main.S
    
    可以写成如下:
    %.o:%.s
        arm-linux-gcc -g -o %.o -c %.S

    观察可知:目标和依赖只有后缀不一样,都只有一个依赖。

    4.Makefile使用技巧

    4.1 去回显

    命令前加@符号

    4.2 文件名

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

    make -f 文件名

  • 相关阅读:
    单例模式创建
    盛最多水的容器
    魔术索引
    钢条切割
    比较版本号
    矩阵中的路径
    机器人的运动范围
    计网基础问题
    Linux 下android环境的配置
    Fedora15下安装Android开发环境
  • 原文地址:https://www.cnblogs.com/boyiliushui/p/4482902.html
Copyright © 2011-2022 走看看