makefile 调试分析方法

 我来答
青柠姑娘17
2022-06-10 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6583
采纳率:100%
帮助的人:37.5万
展开全部

字符串输出,可以加在任何地方,让你定位makefile运行位置。使用方法是在任何地方加入$(warning xxx xxx xxx ), make执行时就会执行到改行的时候打印出来xxx xxx xxx

注意echo只能在target:后面的语句使用且前面要有个TAB,使用方法如下

clean 这个目标不依赖于任何东西,因为冒号后面啥都没有写。 所以处理这个target的时候,只管执行关联动作rm -rf就好了。那么 (LIBSRCS:%.cpp=%.o) 这个好猜就是把LIBSRCS中所有的.cpp列表中的名字保持不变,把后缀修改为.o就变成了LIBOBJS的列表。至于LIBSRCS要把是一个个源文件指定,要吗用通配符指定。 LIBSRCS = (SRCDIR)/ .c (SRCDIR)/ .cpp` 简单的理解就是wildcard把通配符匹配的文件路径都列了出来以方便加入LIBSRCS

例子2 比如推导 make all
首先找all目标看是否要依赖啥
all:lib testExe
需要递归找lib和testExe分别的依赖
lib: $(LIBOBJS)
我们知道$LIBOBJS是一堆.o文件的列表,那么每个.o文件作为目标他们的依赖是啥需要继续推导

.cpp.o:是maikefile的简洁写法,也就是.o文件依赖于同名的.cpp文件,编译规则是 g++ -g $(INC) -c $< -o $@ 意思是如果没有某个.o文件就用这个规则通过同名的cpp文件生成一个。 <表示第一个依赖文件xxx.cpp。 $@表示目标文件xxx.o

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式