在Makefile中无缝连接字符串


 今天在写Makefile时,忽然遇到了一个问题,如何把几个字符串无缝的连接起来?我自然而然的想到了使用 +=。比如:


laolang@laolang:~/code/gongda/data_java/test$ cat test.mk
     1    one:=123
     2    two:=345
     3    three:=567
     4    
     5    final+=$(one)
     6    final+=$(two)
     7    final+=$(three)
     8    
     9    list:
    10        @echo -n "0" 
    11        @echo -n $(final)
    12        @echo "0"
laolang@laolang:~/code/gongda/data_java/test$ 
laolang@laolang:~/code/gongda/data_java/test$ make -f test.mk
123 345 567
laolang@laolang:~/code/gongda/data_java/test$


这显示不是我想要的结果,我想要的结果是输出:01233455670

但是它给我多了几个空格,于是我又查在shell script中如何做到这样无缝的连接字符串,于是我找到了如下例子:


[root@localhost sh]# var1=/etc/
[root@localhost sh]# var2=yum.repos.d/
[root@localhost sh]# var3=${var1}${var2}
[root@localhost sh]# echo $var3
/etc/yum.repos.d/
这个例子来自: http://www.linuxidc.com/Linux/2011-11/47030.htm


于是我的test.mk成了:


laolang@laolang:~/code/gongda/data_java/test$ make -f test.mk 
01233455670
laolang@laolang:~/code/gongda/data_java/test$ cat test.mk 
     1	one:=123
     2	two:=345
     3	three:=567
     4	
     5	final:=$(one)$(two)$(three)  #关键行
     6	
     7	list:
     8		@echo -n "0" 
     9		@echo -n $(final)
    10		@echo "0"
laolang@laolang:~/code/gongda/data_java/test$ make -f test.mk 
01233455670     //现在达到了我想要的效果
laolang@laolang:~/code/gongda/data_java/test$



这样就可以了



转载于:https://my.oschina.net/iamhere/blog/356842

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值