随堂笔记11——工程管理器make

本文介绍了工程的基本构成,工程管理器如make与makefile的作用,包括makefile的三要素和语法,以及如何通过伪目标、依赖和命令实现自动化编译。讲解了makefile中的内置变量和使用技巧,还涉及多级目录下makefile的工作原理和常见操作。
摘要由CSDN通过智能技术生成

1.什么是工程?
一个工程由多个源文件 + 其他文件(图片 + 头文件 + 脚本文件)

2.工程管理器的作用:编译多个源文件,实现自动编译
如果没有工程管理器 —— gcc + 所有源文件 -o 可执行文件

3.make依赖于makefile文件

4.makefile文件是一种脚本文件(批处理),存在相关语法

makefile语法

三要素:目标、依赖、命令
目标:最终生成的文件
依赖:生成目标时所需要的文件
命令:生成目标时,需要执行的命令

格式:

目标:依赖
tab  命令

定义伪目标(真目标会生成对应文件,伪目标则不会)

.PHONY:伪目标名
伪目标名:
    命令
@gcc hello.c -o hello    //在命令前加@可以取消回显(即不将命令显示出来)

echo  hello     //输出hello,echo相当于C语言中的print

#gcc hello.c -o hello     //将该行注释(makefile中注释用#)

内置变量:
$@:表示目标文件的名称,包含扩展名
$^:表示所有的依赖文件,以空格隔开,不重复
$<:表示第一个依赖文件的名称
$+:表示所有的依赖文件,空格隔开,可以重复
$*:表示目标文件的名称,不包含扩展名
$?:依赖项中,所有比目标文件新的依赖文件

当前目录有多个makefile时:
make -f Makefile      //可以这样指定用某个makefile

注:make会记录文件的时间,如果文件没修改,时间没变则不会再次编译(可执行文件没有了,也会再次编译。
makefile能实现自动编译,但是编译速度比较慢。

执行顺序

1.makefile是从第一个目标体开始执行的
2.make + 目标体:从对应的目标体执行(如果目标体后面依赖的文件是一个目标的话,先执行依赖对应的目标,再执行目标体的命令)

多级目录下的makefile

多级目录下的makefile:
1.顶层makefile:总控makefile
2.子目录makefile:功能makefile
3.scripts目录makefile:头文件makefile
查看顺序:3 — 1 — 2
总控makefile:进入各个功能子目录下执行make命令,将各个子目录下的.o文件链接生成可执行文件
功能makefile:将当前目录下的.c文件编译生成.o文件
头文件makefile:定义一些变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值