1. OBJS = main.o: 定义了一个变量 OBJS,其值为 main.o
  2. CFLAGS += -Wall -I../ta/include -I$(TEEC_EXPORT)/include -I./include: 将编译参数 -Wall 和三个 include 路径添加到已有的 CFLAGS 变量中
  3. LDADD += -lteec -L$(TEEC_EXPORT)/lib: 将 -lteec 和 -L$(TEEC_EXPORT)/lib 添加到已有的 LDADD 变量中
  4. BINARY = optee_example_hello_world: 定义了一个变量 BINARY,其值为 optee_example_hello_world
  5. .PHONY: all: 声明 all 是一个伪目标,不是一个文件
  6. all: $(BINARY): 声明 all 目标依赖于 BINARY 目标,即 all 目标需要在 BINARY 目标构建完成后才能执行
  7. $(BINARY): $(OBJS): 声明 BINARY 目标依赖于 OBJS 目标,即 BINARY 目标需要在 OBJS 目标构建完成后才能执行
  8. $(CC) -o $@ $< $(LDADD): 使用 CC 变量定义的编译器将 OBJS 编译为 BINARY,-o 表示输出文件名为当前目标,$@ 表示当前目标的文件名,$< 表示当前目标所依赖的第一个文件(这里为 OBJS),$(LDADD) 表示链接的库文件
  9. .PHONY: clean: 声明 clean 是一个伪目标,不是一个文件
  10. clean: 声明 clean 目标,用于删除 OBJS 和 BINARY 文件
  11. rm -f $(OBJS) $(BINARY): 删除 OBJS 和 BINARY 文件
  12. %.o: %.c: 声明以 .c 结尾的文件都可以使用这个规则进行编译,$< 表示依赖的第一个文件,$@ 表示当前目标的文件名,-c 表示只编译不链接
OBJS = mainoCFLAGS += -Wall -Itainclude -I$TEEC_EXPORTinclude -Iinclude#Addlink other required libraries hereLDADD += -lteec -L$TEEC_EXPORTlibBINARY = optee_example_hello_worldPHONY allall $BINARY$BIN

原文地址: https://www.cveoy.top/t/topic/b2mt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录