我们常常拿到一个代码,不知道从哪里入手,不清楚每个文件的依赖关系,代码的组织结构,这个时候,就需要从Makefile入手,分析代码的文件结构。 可是Makefile有些时候写的很复杂,我们就需要借助调试信息来帮助我们理解Makefile的文件组织结构

1、像shell中的echo一样打印

SRC := ./src/test1.c

SRC += ./src/test2.c

INC := ./inc/test.h

$(info SRC = $(SRC))

$(warning INC = $(INC)) #会打印行号

#注意:执行到error会直接stop退出

$(error INC = $(INC))

test:

@echo SRC=$(SRC)

@echo INC=$(INC)

$(info SRC = $(SRC))

$(warning INC = $(INC))

#注意:执行到error会直接stop退出

$(error INC = $(INC))

2.指定打印某一个变量

SRC := ./src/test1.c

SRC += ./src/test2.c

INC := ./inc/test.h

#使用到了 $*、模式目标相关知识,可以加入到最后一行,但不会进行编译

print-% : ; @echo $* = $($*)

需要打印变量SRC时,只需要执行 make print-SRC

2.1有些时候我们不想在Makefile中加入

print-% : ; @echo $* = $($*)

因为在每个Makefile中都加入这一行,是比较繁琐的事情,这个时候,我们就可以创建一个文件 vim vars.mk

%:

@echo '$*=(*)'

d-%:

@echo '$*=(*)'

@echo ' origin = (origin*)'

@echo ' value = $(value $*)'

@echo ' flavor = (flavor*)'

用法是

make -f Makefile -f var.mk d-SRC

3.有些时候,我们看到一个Makefile ,想看一下它的编译过程,但又不需要编译他,这个时候就可以使用 make --just-print 或者 make -n

make --just-print

make -n

参考: https://blog.csdn.net/q2519008/article/details/106902771/?utm_medium=distribute.wap_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0–blog-88693221.wap_relevant_t0_edu_mix&spm=1001.2101.3001.4242.1&utm_relevant_index=1

https://blog.csdn.net/Luckiers/article/details/126436049?spm=1001.2101.3001.6650.2&utm_medium=distribute.wap_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-2-126436049-blog-106902771.wap_relevant_t0_edu_mix&depth_1-utm_source=distribute.wap_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-2-126436049-blog-106902771.wap_relevant_t0_edu_mix

https://www.cnblogs.com/LoTGu/p/5936465.html

文章来源

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。

大家都在找:

bash:bash脚本

开发语言:安卓开发语言

大家都在看: