zoukankan      html  css  js  c++  java
  • Makefile 工程管理

    Makefile 工程管理

    Makefile 规则 --变量

    Makefile中,用户除了可以自己定义变量外,还可以使用存在系统已经定义好的默认变量

    $^:代表所有的依赖文件

    $@:代表目标

    $<:代表第一个依赖文件

    Makefile使用技巧

    --去回显

    Makefile 中“#”字符后的内容被视作注释

    @:取消回显

    使用技巧 – 文件名

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

    make –f 文件名

    结构化Makefile文件的编写

    顶层Makefile

    OBJS: = start.o main.o mem.o dev/dev.o lib/lib.o

    CFLAGS: = -fno-builtin –I$(shell pwd)/include

    export CFLAGS

    gboot.bin : gboot.elf

    arm-linux-objcopy –O binary gboot.elf gboot.bin

    boot.elf : $(OBJS)

    arm-linux-ld-Tgboot.lds –o gboot.elf $^

    %.o : %s

    arm-linux-gcc –g –c $^

    lib/lib.o

    make –C lib all

    dev/dev.o

    make –C dev all

    .PHONY:clean

    clean:

    rm *.o *.elf *.bin

    make –C lib clean

    make –C dev clean

    dev文件夹的Makefile

    objs:= button.o interrupt.o led.o nandflash.o uart.o

    all:$(objs)

    arm-linux-ld –r –o dev.o $^

    %.o : %.c

    arm-linux-gcc ${CFLAGS} –C $^

    %.o:%.S

    arm-linux-gcc ${CFLAGS} –C $^


    clean:

    rm –f *.o

    lib文件夹中的Makefiledev文件夹中的Makefile基本一样,就是objs后面的不一样

  • 相关阅读:
    三联生活周刊:女游戏设计师之死
    HTML
    营运社区所需要的基本心理学常识
    对C++下struct 和 类默认继承的认识
    什么是列表?
    什么是个人网站?
    DevExpress ASPxListBox can't get selected items after postback
    ListItemEventHandler does not fire on the prospective list
    SPF和SharePoint Server的区别
    什么是网站?
  • 原文地址:https://www.cnblogs.com/love-linux/p/5243757.html
Copyright © 2011-2022 走看看