在makefile 中变量的使用

举报
yd_221104950 发表于 2020/12/02 22:44:34 2020/12/02
【摘要】 演示示例: 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。