在makefile 中变量的使用
【摘要】 演示示例:
app:main.o hello.o gcc -o app main.o hello.o
main.o:main.c hello.h gcc -c main.c
hello.o:hello.c hello.h gcc -c hello.c
clean: rm app main.o hello.o
123456789
先让我们看看 app 的规则:
a...
演示示例:
app:main.o hello.o gcc -o app main.o hello.o
main.o:main.c hello.h gcc -c main.c
hello.o:hello.c hello.h gcc -c hello.c
clean: rm app main.o hello.o
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
先让我们看看 app 的规则:
app:main.o hello.o gcc -o app main.o hello.o
- 1
- 2
可以看到 .o 文件的字符串被重复了两次。如果工程需要加入一个新的 .o 文件,那么
需要在三个地方添加的.o文件加(还有一个地方在 clean 中)。
我们的演示示例比较简单,修改起来也不会很麻烦。但是在真实的项目中,涉及到的地方可能比较多,且makefile 变得更复杂,那么我们就有可能会忘掉一个需要加入的地方,而导致编译失败。所以,为了 makefile 的易维护,在 makefile 中我们可以使用变量。这样我们只要修改变量,其他引用到变量的地方就会同时被修改。
我们声明一个自定义一个变量OBJECTS,表示目标文件。我们在 makefile 一开始就这样定义:
OBJECTS = main.o hello.o
- 1
在makefile 中以 $(OBJECTS) 的方式来使用这个变量,我们修改一下我们的演示示例:
OBJECTS = main.o hello.o
app:$(OBJECTS) gcc -o app $(OBJECTS)
main.o:main.c hello.h gcc -c\ main.c
hello.o:hello.c hello.h gcc -c hello.c
clean: rm app $(OBJECTS)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
如果有新的 .o 文件加入,我们只需简单地修改一下 OBJECTS 变量就可以了!
谢谢阅读!
文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_40763897/article/details/103110052
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)