• [国嵌笔记][017][Makefile工程管理]


    Makefile的用途

    1.make能够使整个程序的编译、链接只需一个命令就可以完成

    2.make的工作主要依赖于Makefile的文件。Makefile文件描述了整个程序的编译、链接等规则,使之自动完成。

    Makefile的构成

    1.规则  

    targets(目标):prerequisties(依赖)   

      command(命令)  

    注意:command前面是[tab]而不是空格,否则执行会出错  

    1.伪目标:只有目标和命令,没有依赖的规则称为伪目标,伪目标通常用 .PHONY:targets (也可以不写)标明是一个伪目标  

    2.最终目标:如果 make 后面什么都没有跟,则运行第一条规则,这条目标称为最终目标  

    3.指定目标:如果只想运行规则中的一条目标,只需要执行 make targets 就只会产生对应的目标

    2.变量  

    1.在Makefile中多次出现的组成部分,可以用变量来替换  

    2.变量的定义:name=file1 file2... , 注意"="两边不要有空格  

    3.变量的使用:$(name) 相当于 file1 file2...  

    4.系统默认变量   

    $@:表示目标(all除外,all不是目标名)   

    $^:表示所有的依赖   

    $<:表示第一个依赖  

    5.通用规则   

    如果多条规则的仅只有目标和依赖的文件类型不同,命令都相同,则多条规则可以用一条通用规则替换

    %.o:%.c     
        arm-liunx-gcc -c $^ -o $@
    

    Makefile使用技巧

    1.去回显,在对应要去回显的命令前面加上@

    2.make工具默认情况下只能运行当前目录下的Makefile或makefile文件,当要指定运行其他文件是可以使用"-f"命令  make -f name

    obj=led.o
    
    all: $(obj)
            arm-linux-ld -Tled.lds $^  -o led.elf
            arm-linux-objcopy -O binary led.elf led.bin
            
    %.o : %.S
            arm-linux-gcc -g -c $^ -o $@
            
    .PHONY: clean
    clean:
            @rm *.o *.elf *.bin
    
  • 相关阅读:
    021.10 IO流 打印流
    1、Node.js 我的开始+安装
    021.9 IO流 流总结
    021.8 properties(开发使用频率高)
    021.7 装饰设计模式
    021.6 IO流 练习
    021.5 IO流——字符流
    scrapy基础知识之 CrawlSpiders爬取lagou招聘保存在mysql(分布式):
    scrapy基础知识之 关于爬虫部分一些建议:
    scrapy基础知识之 处理Redis里的数据:
  • 原文地址:https://www.cnblogs.com/d442130165/p/4889117.html
Copyright © 2020-2023  润新知