自动化构建-make/Makefile
2026/6/8 1:50:38 网站建设 项目流程

前言

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

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

基本使用

文件内容:

myproc:myproc.cc g++-o$@$^ .PHONY:clean clean:rm-rfmyproc

这是最基本的使用

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

2.但是make clean 可以一直使用
解释:
这个其实是因为

.PHONY:clean

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

进一步解释:
在linux中,文件 = 内容+属性

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

Access:就是最近你访问的文件的时间,但是这个可能你要累计访问好几次才会涉及一次修改
Modify:你对文件内容的修改,就会触发
Change:文件属性修改,就会触发

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

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

拓展

语法:
1.
$() 引用变量

变量名=# 定义变量,不用 $()$(变量名)# 使用变量,要用 $()$(shell 命令)# 调用 make 函数,也用 $()

2.函数 集体调用
shell ls *.cc --shell命令行方式
wildcard *.cc --makefile自带

3.$@ $^
$@ : 表示你所要生成地目标文件
$^:源文件

4.@g++ -o $@ $^
这个@加了之后就会去除打印,在命令行上就看不到了(不回显命令)

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

解剖

对于:

myproc:myproc.o gcc myproc.o-omyproc myproc.o:myproc.s gcc-cmyproc.s-omyproc.o myproc.s:myproc.i gcc-Smyproc.i-omyproc.s myproc.i:myproc.c

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询