Makefile初级语法2

本文介绍了Makefile的执行顺序,说明了默认目标(终极目标)的概念,以及如何根据依赖关系决定哪些需要重新编译。此外,还讲解了伪目标的定义,如clean,并建议使用.PHONY进行声明。最后提到了隐含规则,虽然不深入讨论,但足以帮助读者开始使用Makefile进行简单的自动化编译任务。
摘要由CSDN通过智能技术生成

Makefile的执行顺序

在我们在讲解其他初级语法例如伪目标之前,我们来讲解Makefile的执行顺序 Makefile遇到的第一个target为默认target,也就是你仅执行make或者make -F Makefile_name时默认会执行的。我们称该目标为默认目标,也称为终极目标。 其会检索其依赖关系的关系链,然后根据时间来确定关系链条的更新点,判断那些需要重新编译,则从最底层依赖需要重新编译的地方开始重新编译,直到最终目标完成。

Makefile初级语法

  • 伪目标 目标命令不生成文件,我们称其为伪目标。 如以下Makefile

    GCC = gcc
    OBJECTS = main.o print_hello.o
    HEAD_SOURCE = print_hello.h
    
    helloword.o: ${OBJECTS}
    	${GCC} -o helloworld ${OBJECTS}
    
    ${OBJECTS}: ${HEAD_SOURCE}
    main.o: main.c
    print_hello.o: print_hello.c
    
    clean:
    	rm helloworld ${OBJECTS}
    

    则helloworld.o, main.o以及printhello.o都非伪目标,因为其都有目标文件生成。 而clean则用来清除编译过程中生成的文件,则为伪目标。 在GNU Makefile中,有一些约定俗称的伪目标。

    伪目标 含义
    all 编译所有目标
    clean 删除所有被make创建的文件
    install 编译已安装好的程序,其将目标可执行文件拷贝到指定的目录中去</
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值