Make include文件问题及所属的变量的范围问题

最近因为工作关系需要撰写Makefile,因为需要在调试版和发布版之间自动切换。所以单独生成一个文件comp,在comp中有一变量DEBUG_OPTION,其值在调试模式下是"-g -Wall -DDEBUG",在发布模式下是"-Wall -O2".这样在Makefile中include comp,就解决了调试与发布之间的自动切换的问题。但是随着工程的进展,程序需要在多个平台比如Linux、Mac、Solaris,同时运行,由于平台不同,编译选项的不同,如果编写为多个规则写出多个平台的规则的话那是相当的麻烦。所以引入了另外一个文件Rule.make,这个文件处理多个平台的编译选项问题。这样在同一个Makefile中就要包括两个文件,这样问题就来了。代码是这样的:include comp
include Rules.make,但是我惊奇的发现,原来可以用的DEBUG_OPTION,现在不见了。无奈之下在Rules.make中定义了另外的变量它引用comp中的DEBUG_OPTION的值,结果又可以调试了。就这样我发现include文件里变量的使用范围问题。这样Makefile包含Rules.make,而Rules.make内却包含comp,这样问题就解决了。一个变量只能在自己所在的文件和被包含的文件所使用,不能越级使用。比如Makefile就不能直接使用DEBUG_OPTION的值,而必须通过Rules.make间接使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值