【Linux】makefile(Linux项目自动化构建工具)

本文详细介绍了Linux下的makefile,用于项目自动化构建。通过实例解析了makefile的编写规则,包括如何处理头文件,使用-I指定头文件路径,以及makefile中的目标文件、依赖文件和命令。此外,还探讨了$^、$@和$<等特殊符号的用法,以及百分比规则的递归执行。最后提出了用makefile实现进度条的小练习。
摘要由CSDN通过智能技术生成

makefile(Linux项目自动化构建工具)

  • od -c add.h
  • 将add.h中所有内容显示出来,可用于查看最后一行有无换行符,有的编译器程序最后一行没有换行符编译不过去
    od -c add.h

  • gcc -c main.c -o main.o -I ../include

  • 头文件不在当前目录下,编译时找不到头文件,编译失败,-I 表示编译时不仅去系统包含的头文件中找,还去I指定的路径../include下去找头文件
    -I

创建Makefile : 将所有指令写入,方便执行

  • 脚本文件注释均以#开头
  • 目标文件:依赖文件
  • tab 命令 指定如何从依赖文件生成目标文件
    Makefile
    make执行过程:

  • make指令的时候 寻找Makefile文件的第一个目标,并生成它,这时,如果该目标所依赖得文件不存在,将不存在的文件作为目标继续寻找依赖文件,若依赖文件存在则生成,所有依赖文件生成好后,生成第一个目标文件

  • make指令后跟目标文件名,则寻找目标文件的依赖文件,若make指令后缺省则第一个为目标文件
  • make 是按照时间戳比较的:如果目标文件比依赖文件更新,说明未改动过,则make 目标文件最新,不再执行
  • make是按照时间戳比较的:若目标文件没有依赖文件,且目录下有该目标文件,则默认该文件为最新的,不再执行该目标文件
  • 伪目标: .PHONY : main .PHONY后跟的是伪目标,无论该目标是不是最新的,该目标也会执行
    Makefile
    进阶1

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

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

  • 将gcc add.o sub.o mul.o main.o -o main改为gcc $^ -o main

  • 将gcc -c main.c -o main.o -I ../include改为gcc -c   o  − o @ -I ../include
    1
    进阶2

  • 将目标文件:依赖文件add.o : add.c改为%.o:%.c

  • make将会递归执行所有的目标文件
    2
    在Linux系统中
    sleep 秒
    usleep 微秒

小练习(●’◡’●):用makefile编写进度条

  • progressbar.c
    这里写图片描述
  • makefile:
    这里写图片描述
  • 运行结果:
    这里写图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值