OBJSs := $(patsubst %.S,%.o,$(OBJSss))
时间: 2023-10-07 07:09:27 浏览: 60
这是一个Makefile文件中的变量赋值语句,定义了一个名为OBJSs的变量,其值是通过`patsubst`函数处理后得到的。其中:
- `$(OBJSss)`表示前面定义的一个变量,其值为多个文件名列表,每个文件名可能以.S或.c为后缀;
- `$(patsubst %.S,%.o,$(OBJSss))`表示将`$(OBJSss)`中以`.S`为后缀的文件名,替换为以`.o`为后缀的文件名,并返回处理后的文件名列表。
例如,如果`$(OBJSss)`的值为`start/main.S common/src/foo.c bar.S`,则`$(patsubst %.S,%.o,$(OBJSss))`的值为`start/main.o common/src/foo.c bar.o`。
最终,`OBJSs`变量的值就是上述处理后得到的文件名列表。这个变量通常用于Makefile中的编译指令,指定需要编译的源文件列表。
相关问题
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。
SRC=$(wildcard *.cpp) OBJ=$(patsubst %.cpp, %.o,$(SRC))
这是一个 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`。这样在后续的编译过程中,就可以方便地使用这两个变量来指定源文件和目标文件。