自动化构建-make/Makefile

前言

会写makefile是一个很重要的能力

makefile的作用:自动化构建项目

基本使用

文件内容:

bash 复制代码
myproc:myproc.cc
	g++ -o $@ $^

.PHONY:clean
clean:
	rm -rf myproc

这是最基本的使用

发现:

1.在make之后,如果你不修改文件,那么,系统就不让你make了

2.但是make clean 可以一直使用

解释:

这个其实是因为

.PHONY:clean

有了这个意思就是告诉系统忽略对比新旧文件时间问题

进一步解释:

在linux中,文件 = 内容+属性

然后系统中会存三个东西:

Access :就是最近你访问的文件的时间,但是这个可能你要累计访问好几次才会涉及一次修改

Modify :你对文件内容的修改,就会触发

Change:文件属性修改,就会触发

系统就会对比时间线,主要是看Modify,其它可能不准

myproc.cc在myproc后面的时间线话就make 不了,在前面就可以。

拓展

语法:

$() 引用变量

bash 复制代码
变量名 = 值          # 定义变量,不用 $()
$(变量名)           # 使用变量,要用 $()
$(shell 命令)       # 调用 make 函数,也用 $()

2.函数 集体调用

shell ls *.cc --shell命令行方式

wildcard *.cc --makefile自带

3.@ ^

$@ : 表示你所要生成地目标文件

$^:源文件

4.@g++ -o @ ^

这个@加了之后就会去除打印,在命令行上就看不到了(不回显命令)

5.$<

对展开的以来.cc文件/一个一个的交给g++

解剖

对于:

bash 复制代码
myproc:myproc.o 
 	gcc myproc.o -o myproc
myproc.o:myproc.s 
 	gcc -c myproc.s -o myproc.o
myproc.s:myproc.i 
	gcc -S myproc.i -o myproc.s
myproc.i:myproc.c 
相关推荐
跨境数据猎手3 小时前
外贸独立站开发:从选型到上线全流程梳理
大数据·架构·自动化
HackTwoHub3 小时前
Butter_Cookie 黄油曲奇|浏览器渗透插件,云存储检测、XSS、SQL 注入一站式 Web 安全测试工具
前端·sql·安全·web安全·网络安全·自动化·xss
TDengine (老段)4 小时前
TDengine 应用案例 — IT 运维与可观测性
大数据·运维·数据库·制造·时序数据库·tdengine·涛思数据
观无4 小时前
.net发布注意事项
运维·服务器
运营小白4 小时前
SEONIB AI 内容自动化流水线深度评测
人工智能·自动化·内容运营·跨境电商·社交媒体·ai skill
AugustSkys4 小时前
云原生运维实战:ETCD 分布式存储集群运维、Kubernetes 高可用集群部署与版本平滑升级
运维·kubernetes
DsirNg13 小时前
让流程会停下:AI 自动化的交班设计
自动化·可观测性·幂等性·智能体·ai 工作流·人工在环·工单分流
2601_9667990414 小时前
酷嗨米J300:一台相机同步推三平台
运维·服务器·负载均衡
AI行业说14 小时前
2026年清洁耗材智能模板机品牌排名:扫地机拖布、美妆粉扑工厂自动化选型指南
运维·自动化
派大鑫wink14 小时前
Dify 工作流搭建操作手册:以信息化运维周报自动生成为例
运维