欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > Linux高并发服务器开发 第八天(makefile的规则 wildcard/patsubst函数 普通变量/自动变量/其他关键字)

Linux高并发服务器开发 第八天(makefile的规则 wildcard/patsubst函数 普通变量/自动变量/其他关键字)

2025/9/15 0:10:20 来源:https://blog.csdn.net/m0_53349772/article/details/144836777  浏览:    关键词:Linux高并发服务器开发 第八天(makefile的规则 wildcard/patsubst函数 普通变量/自动变量/其他关键字)

目录

1.makefile

1.1makefile的规则

1.2两个函数

1.3三个自动变量

1.3.1普通变量 (自定义变量)

1.3.2自动变量

1.3.3其他关键字

- ALL/all

- clean


1.makefile

- 作用:进行项目管理。
- 初步学习:1个规则、2个函数、3个自动变量。
- 要想使用默认的make命令,管理项目。makefile文件名:必须是 “makefile”  或 “Makefile”

1.1makefile的规则

语法:
目标:依赖条件
(一个tab缩进)命令

举例:

- 目标的时间,必须晚于依赖条件的时间,否则,更新目标。
- 依赖条件,如果不存在,寻找新的规则去产生依赖条件。

举例:

1.2两个函数

wildcard 函数:用来匹配文件名,得到字符串
src = $(wildcard ./*.c)  : 匹配当前工作目录下的所有.c文件。将文件名组成列表,赋值给变量 src
    相当于: src = add.c sub.c mul.c

patsubst 函数:用来字符串替换
obj = $(patsubst %.c, %.o, $(src)) : 将 参3 中,包含 参1的部分,替换为 参2.
    相当于: obj = add.o sub.o mul.o
obj = $(patsubst %.c, %, $(src))
    相当于: obj = add sub mul

举例:

可以替换为:

1.3三个自动变量

1.3.1普通变量 (自定义变量)

- 定义变量语法:变量名 = 变量值  (都是字符串)
    - 举例:foo = abc
- 取变量值语法:$(变量)
    - 举例:bar = $(foo)  ===>  bar = abc
- makefile 自带变量:
    - CC = cc
    - CPPFLAGES
    - CFLAGES
    - LDFLAGES

1.3.2自动变量

- $@: 在规则的命令中,表示规则中的目标。

替换为
- $^:  在规则的命令中,表示所有依赖条件。

- $<:  在规则的命令中,表示第一个依赖条件。如果将该变量应用在 “模式规则” 中,它可以将依赖条件列表中的每一个依赖,依次取出,套用模式规则。

替换为

1.3.3其他关键字
- ALL/all:  

    - 用来给 makefile 文件,指定 “终极目标”。

    - makefile 文件,默认的规则为:从上而下,碰到的第一个 规则中的目标,为 “终极目标”。我们可以使用 ALL 指定终极目标。

- clean:

    - 用来 借助 makefile 清除项目中的指定文件。如:*.o、a.out

    - 举例:


            

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词