C语言15-makefile(2)——makefile的自定义变量及两个函数

1.自定义变量的声明及使用

makefile 复制代码
#声明变量
src=123
#使用变量
foo=$(src)

2.wildcard函数

  • 用法:
makefile 复制代码
$(wildcard <pattern>)
  • 作用:
    该函数会返回当前目录下匹配指定模式()的所有文件名。它通常用于获取特定类型的文件列表。
  • 示例
makefile 复制代码
# 获取当前路径下所有的.c文件
src = $(wildcard *.c)

3.patsubst函数

  • 用法:
makefile 复制代码
$(patsubst 参数1,参数2,参数3)
  • 作用:

    将参数3中匹配参数1的文字全部替换成参数2

  • 示例:

makefile 复制代码
# 获取当前目录下的所有.c文件的文件名
src = $(wildcard *.c)
# 将.c文件的文件名替换为.o
obj = $(patsubst %.c,%.o,$(src)) 

4.改写上一节的makefile文件

makefile 复制代码
src = $(wildcard *.c)
obj = $(patsubst %.c,%.o,$(src))

app:$(obj)
	gcc $(obj) -o app
hello.o:hello.c
	gcc -c hello.c -o hello.o
add.o:add.c
	gcc -c add.c -o add.o
sub.o:sub.c
	gcc -c sub.c -o sub.o
mul.o:mul.c
	gcc -c mul.c -o mul.o 
相关推荐
人间凡尔赛5 小时前
Next.js 16 生产级实战:Cache Components + View Transitions 完整指南
开发语言·javascript·ecmascript
稚南城才子,乌衣巷风流8 小时前
函数:编程中的核心概念
开发语言·前端·javascript
阿米亚波8 小时前
【C++】流式数据输入处理(不完全整理)
开发语言·c++·笔记
大模型码小白9 小时前
JAVA 集合框架进阶:List 与 Set 的深度解析与实战
java·开发语言·人工智能·windows·语言模型·list·ai编程
皓月斯语10 小时前
【C++基础】三目运算符
开发语言·数据结构·c++
初願致夕霞10 小时前
C++懒汉单例设计详解
服务器·开发语言·c++
脱胎换骨-军哥10 小时前
C++分布式系统设计:从通信引擎到分布式共识
开发语言·c++·分布式
Discipline~Hai11 小时前
ARM01-ARM体系架构
linux·c语言·arm开发·架构
脱胎换骨-军哥11 小时前
C++零成本抽象理论深度拆解:现代C++如何在不牺牲性能的前提下提供高级语法封装
java·开发语言·c++
lbb 小魔仙11 小时前
VS Code Python 高级调试技巧:从入门到精通
开发语言·python