第一点:
ifeq ($(STATIC), true) 表示的问题.
第二点:
makefile 中赋值问题?
第三个问题
CFLAGS+= -DEGUI_FOR_IDVR_8000_BASED_DVR -DEGUI_FOR_HI3531_BASED_DVR -Dhi3521d -DHI_RELEASE -DHI_XXXX
第四个问题:
--sysroot gcc链接参数
第五个问题:
makefile中: 赋值语句 CFLAGS +=
第六个问题:
ARCH:=arm
第七个问题:
LIBDIR=../DVR_SDK/lib_${TYPE}-static
第八个问题:
LIBS-static = $(shell find $(LIBDIR) -maxdepth 1 -name "*.a" | sed -e s/.*lib/-l/g -e s/.a$$//)
第九个问题
gcc 常用参数
第十个问题
TARGET_DIR_CHECK= $(patsubst %,%/.,$(TARGET_DIRS))
第十一个问题
.PHONY 表达什么含义
第十二问题:
release: $(RELEASE_DIR)/. $(PROTO_TARGET) $(RELEASE_TARGET)展开是什么
第十三个问题
install -m 0755 $@ $(OUTDIR)/$(FS_DIR)/bins/ install命令
第十四个问题
$(DEBUG_DIR)/%.o:%.c
$(CXX) $(DFLAGS) $(INCLUDES) -c $^ -o $@
$(RELEASE_DIR)/%.o:%.c
$(CXX) $(RFLAGS) $(INCLUDES) -c $^ -o $@
问题: 串口 uboot uboot相关的命令
知识:
1.预处理,生成预编译文件(.文件):
Gcc –E hello.c –o hello.i
2.编译,生成汇编代码(.s文件):
Gcc –S hello.i –o hello.s
3.汇编,生成目标文件(.o文件):
Gcc –c hello.s –o hello.o
4.链接,生成可执行文件:
Gcc hello.o –o hello
gcc hello.c -o hello
gcc testmain.c testsub.c -lm -o test
.phony的作用
https://www.cnblogs.com/amanlikethis/archive/2013/11/17/3427622.html
自动推到的命令:
让make自动推导:
GNU的make很强大,它可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必要
去在每一个[.o]文件后都写上类似的命令,因为,我们的make会自动识别,并自己推导命令。
http://www.cnblogs.com/liyanwei/archive/2010/04/29/1723931.html
objects = main.o kbd.o command.o display.o \
insert.o search.o files.o utils.o
edit : $(objects)
cc -o edit $(objects)
main.o : defs.h
kbd.o : defs.h command.h
command.o : defs.h command.h
display.o : defs.h buffer.h
insert.o : defs.h buffer.h
search.o : defs.h buffer.h
files.o : defs.h buffer.h command.h
utils.o : defs.h
gcc -o $@ $^ .c.o: gcc -c $<