SRC=$(wildcard *.cpp) OBJ=$(patsubst %.cpp, %.o,$(SRC))
时间: 2023-11-23 16:06:30 浏览: 149
这是一个 Makefile 中的语句,用于定义变量。其中:
- `SRC=$(wildcard *.cpp)` 表示将当前目录下所有的 `.cpp` 文件的文件名保存到 `SRC` 变量中,使用了 `wildcard` 函数。
- `OBJ=$(patsubst %.cpp, %.o,$(SRC))` 表示将 `SRC` 变量中的每个 `.cpp` 文件名替换成对应的 `.o` 文件名,并将结果保存到 `OBJ` 变量中,使用了 `patsubst` 函数。
举个例子,如果当前目录下有 `foo.cpp` 和 `bar.cpp` 两个文件,那么执行完上述语句后,`SRC` 变量的值为 `foo.cpp bar.cpp`,`OBJ` 变量的值为 `foo.o bar.o`。这样在后续的编译过程中,就可以方便地使用这两个变量来指定源文件和目标文件。
相关问题
src = $(wildcard ./*.c) #obj = $(patsubst %.c, %.o, $(src)) obj = $(src:%.c=%.o)
这是一个Makefile中的变量定义,用于自动化编译C程序。其中,$(wildcard ./*.c)是通配符函数,用于查找当前目录下所有以.c为后缀名的文件,并将文件名列表存储在变量src中。$(patsubst %.c, %.o, $(src))是模式替换函数,用于将src变量中的.c文件替换成.o文件,并将替换后的文件名列表存储在变量obj中。另一种写法$(src:%.c=%.o)是变量替换函数,用于将变量src中的.c文件替换成.o文件,并将替换后的文件名列表存储在变量obj中。最终,变量obj中存储了当前目录下所有以.c为后缀名的文件所对应的.o文件名列表,这些.o文件可以作为编译目标文件的依赖项。
SRCS := $(wildcard *.c) OBJS := $(patsubst %.c, %.o, $(SRCS))
这是一个 Makefile 文件的两行代码,其中:
- `SRCS := $(wildcard *.c)` 表示将当前目录中所有的 .c 文件名列表赋值给 SRCS 变量。
- `OBJS := $(patsubst %.c, %.o, $(SRCS))` 表示将 SRCS 变量中的 .c 文件名列表分别替换成 .o 文件名列表,并赋值给 OBJS 变量。其中,`$(patsubst %.c, %.o, $(SRCS))` 表示将 SRCS 变量中的每个 .c 文件名都替换成对应的 .o 文件名。`$(patsubst pattern,replacement,text)` 是 Makefile 中的一个函数,表示将 text 中的所有 pattern 替换成 replacement。
阅读全文