栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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:定义一些变量

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/728276.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号