代码拉取完成,页面将自动刷新
# 说明将此文件名改为 makefile
# 库文件放在 include 文件中
# makefile 放在 C C++ 文件所在的目录中
#
#CROSS = arm-linux-gnueabihf-
CROSS =
CC := $(CROSS)gcc # CC 定义编译器
# 自己添加的 .h 的文件夹
L1_INCLUDES = -I./DataStruct\
-I./FrameControl
L2_INCLUDES =
#CCFLAGS += -Iinclude
# include 是多C C++ 文件所包含的头文件目录(H文件)
CCFLAGS += -I.
#CCFLAGS += -I..
CCFLAGS += $(L2_INCLUDES) $(L1_INCLUDES)
LIBS = -lpthread -lrt # 动态链接库:多线程用
# CCFLAGES 是编译选项
#CFLAGS = -O0 -g3 -Wall -c -fmessage-length=0 -Wno-deprecated-declarations $(L3_INCLUDES)
CFLAGS = -O0 -g3 $(CCFLAGS)
LINKOPTS =
#LINKOPTS = -Llib
# LIB库目录,在PPP目录下
LDFLAGS = $(LIBS)
# .c 所在目录
SRCDIR = ./ # main.c 所在的文件夹
L1DIR = ./DataStruct
L2DIR = ./FrameControl
OBJDIR = ./build # 编译的结果保存的文件
SRCS = $(shell find $(SRCDIR) $(L1DIR) $(L2DIR) $(L3DIR) -name "*.c" ) # $(shell find $(SRCDIR) -name "main.c" )
OBJS = $(patsubst $(SRCDIR)/%.c, $(OBJDIR)/%.o, $(SRCS))#把SRCS中的.c文件替换成.o文件
DEPS = $(patsubst %.o, %.d, $(OBJS))#把OBJS中的.o文件替换成.d文件
CPPFILES +=
#OBJ = $(CFILES:.c=.o) $(CPPFILES:.c=.o)
EXE = build/S90Agent # EXE是我们要生成的目标文件.
all: $(EXE)
#-include $(DEPS)#ASK 啥意思, 把这一行打开,好像就不进行编译了
$(EXE) : $(OBJS)
#$(CC) $(CFILES:.c=.o) $(CPPFILES:.cpp=.o) $(CCFLAGS) $(LDFLAGS) $(LINKOPTS) $(LIBFILES) -o $@
#@$(CC) -o $(EXE) $(OBJS) $(CCFLAGS) $(LDFLAGS)
@$(CC) -o $(EXE) $(OBJS) $(LDFLAGS)
@echo "[Building] "$@
@echo "[Completed] compiler $(EXE) successed!!!" # 编译成功就会打印这条信息
$(OBJDIR)/%.o: $(SRCDIR)/%.c
# @[ ! -e $(dir $@) ] & mkdir -p $(dir $@)#ASK 啥意思
@echo "[Compiling] "$@
@$(CC) $(CFLAGS) -o $@ -c $<
$(OBJDIR)/%.d: $(SRCDIR)/%.c
@[ ! -e $(dir $@) ] & mkdir -p $(dir $@)
@$(CC) -MM $(CFLAGS) $< > $@.tmp
@sed 's,\(.*\)\.o[ ]*:,$(dir $@)\1.o :,g' < $@.tmp > $@;
@rm -f $@.tmp
clean:
rm -f $(EXE)
#rm -rf $(OBJS) $(DEPS)
rm -rf $(OBJDIR)
# 清除生成的文件
.SUFFIXES: .cpp .c .o
# 通用的.cpp .c .o 文件
#.c.o:
# $(CC) -O -o $*.o -c $(CCFLAGS) $*.c
#.cpp.o:
# $(C++) -c -o $*.o $(CCFLAGS) $*.cpp
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。