Make & Makefile

第一 Make

  1. GCC 提供了半自动化的工程管理器 Make。所谓半自动化是指在使用工程管理器前需要
    人工编写程序的编译规则。所有的编译规则都保存在 Makefile 文件中.

  2. Make 工程管理器的优越性具体体现在以下两个方面。
    ( 1) 使用方便
    通过命令“ make” 就可以启动 Make 工程管理器对程序进行编译,所以不再需要每次都
    输入 gcc 命令行。 Make 启动后会根据 Makefile 文件中的编译规则命令自动对源文件进行编
    译和链接,最终生成可执行文件。
    ( 2) 调试效率高
    为了提高编译程序的效率, Make 会检查每个源文件的修改时间(时间戳)。 只有在上次
    编译之后被修改的源文件才会在接下来的编译过程中被编译和链接, 这样就能避免多余的编
    译工作量。为了保证源文件具有正确的时间戳,必须保证操作系统时间的正确性

第二 Makefile

  1. Make 工程管理器是完全根据 Makefile 文件中的编译规则命令进行工作的。Makefile 文件由以下三项基本内容组成。
    1) 需要生成的目标文件( target file)。
    2) 生成目标文件所需要的依赖文件( dependency file)。
    3) 生成目标文件的编译规则命令行( command)。

注意要点:
其中, Makefile 规定在书写 command 命令行前必须加一个键。

Make 工程管理器在编译程序时会检查每个依赖文件的时间戳,一旦发现某个依赖文件
的时间戳比目标文件要新,就会执行目标文件的规则命令来重新生成目标文件。这个过程称
为目标文件的依赖规则检查。依赖规则检查是 Make 工程管理器的最核心的工作任务之一。

例子:

VPATN = /gcc/show //查找
Target = hello // 目标文件
object = hello.o print.o touc.0 ./show/show.o //依赖文件
$(Target) : $(object) //用变量名来代替文件名 $(变量名)
make -C show
gcc $(object) -o $(Target) //编译规则
. PHONY : clean //伪目标名
clean : //clean的作用语句
rm $(target) *.o
rm ./show/show.o

show 目录下的Makefile文件

show :show.c
gcc -c show.c -o show.o
. PHONY :clean
clean :
rm show.o

第一个Makefile 的意思是链接4个文件,其中有3个在一个目录中还有一个在show目录下

make clean 后
rm *.o
rm ./show/show.o

make 后
cc -c -o hello.o hello.c
cc -c -o print.o print.c
cc -c -o touc.o touc.c
cc -c -o show/show.o show/shoe.c
make -C show
make[1] : Entering directory ‘/gcc/show’
make[2] : “show.o” 是最新的
make[1] : Leaving directory ‘/gcc/show’
gcc hello.o print.o touc.o ./show/show.o -o hello

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值