OBJS = mainoCFLAGS += -Wall -Itainclude -I$TEEC_EXPORTinclude -Iinclude#Addlink other required libraries hereLDADD += -lteec -L$TEEC_EXPORTlibBINARY = optee_example_hello_worldPHONY allall $BINARY$BIN
- OBJS = main.o: 定义了一个变量 OBJS,其值为 main.o
- CFLAGS += -Wall -I../ta/include -I$(TEEC_EXPORT)/include -I./include: 将编译参数 -Wall 和三个 include 路径添加到已有的 CFLAGS 变量中
- LDADD += -lteec -L$(TEEC_EXPORT)/lib: 将 -lteec 和 -L$(TEEC_EXPORT)/lib 添加到已有的 LDADD 变量中
- BINARY = optee_example_hello_world: 定义了一个变量 BINARY,其值为 optee_example_hello_world
- .PHONY: all: 声明 all 是一个伪目标,不是一个文件
- all: $(BINARY): 声明 all 目标依赖于 BINARY 目标,即 all 目标需要在 BINARY 目标构建完成后才能执行
- $(BINARY): $(OBJS): 声明 BINARY 目标依赖于 OBJS 目标,即 BINARY 目标需要在 OBJS 目标构建完成后才能执行
- $(CC) -o $@ $< $(LDADD): 使用 CC 变量定义的编译器将 OBJS 编译为 BINARY,-o 表示输出文件名为当前目标,$@ 表示当前目标的文件名,$< 表示当前目标所依赖的第一个文件(这里为 OBJS),$(LDADD) 表示链接的库文件
- .PHONY: clean: 声明 clean 是一个伪目标,不是一个文件
- clean: 声明 clean 目标,用于删除 OBJS 和 BINARY 文件
- rm -f $(OBJS) $(BINARY): 删除 OBJS 和 BINARY 文件
- %.o: %.c: 声明以 .c 结尾的文件都可以使用这个规则进行编译,$< 表示依赖的第一个文件,$@ 表示当前目标的文件名,-c 表示只编译不链接
原文地址: https://www.cveoy.top/t/topic/b2mt 著作权归作者所有。请勿转载和采集!