当前位置: 技术问答>linux和unix
Makefile 的if分支语句及变量赋值
来源: 互联网 发布时间:2016-10-31
本文导语: 我在照着一本书学习Makefile。但是,书上程序有错误。试着改了很多地方,仍然行不通,达不到预期效果。请各位大侠指点,程序代码如下: 1 var1 = #这里是一个空值 2 var2 = h...
我在照着一本书学习Makefile。但是,书上程序有错误。试着改了很多地方,仍然行不通,达不到预期效果。请各位大侠指点,程序代码如下:
1 var1 = #这里是一个空值
2 var2 = hello
3
4
5 all:
6
7
8 ifdef var1 #定义过“var1”变量
9 var1 = hello
10 endif
11
12
13 ifeq ($(var1),$(var2))
14 echo "they are equal"
15 else
16 echo "they are not equal"
17 endif
18
19
20 .PHONYP:all
预期效果应该是:先执行第一个if分支语句,将“hello”赋值给变量“var1”;再进行第二个if分支语句的比较,从而输出“they are equal”。先行谢过!
1 var1 = #这里是一个空值
2 var2 = hello
3
4
5 all:
6
7
8 ifdef var1 #定义过“var1”变量
9 var1 = hello
10 endif
11
12
13 ifeq ($(var1),$(var2))
14 echo "they are equal"
15 else
16 echo "they are not equal"
17 endif
18
19
20 .PHONYP:all
预期效果应该是:先执行第一个if分支语句,将“hello”赋值给变量“var1”;再进行第二个if分支语句的比较,从而输出“they are equal”。先行谢过!
|
1 var1 = #这里是一个空值
2 var2 = hello
3
4
5 all:
6
7
8 ifdef var1 #定义过“var1”变量#这个条件好像不成立
9 var1 = hello#加TAB
10 endif
11
12
13 ifeq ($(var1),$(var2))
14 @echo "they are equal"#加TAB
15 else
16 @echo "they are not equal"#加TAB
17 endif
18
19
20 .PHONYP:all
2 var2 = hello
3
4
5 all:
6
7
8 ifdef var1 #定义过“var1”变量#这个条件好像不成立
9 var1 = hello#加TAB
10 endif
11
12
13 ifeq ($(var1),$(var2))
14 @echo "they are equal"#加TAB
15 else
16 @echo "they are not equal"#加TAB
17 endif
18
19
20 .PHONYP:all
|
ifdef var是根据var值是否为空来判断真假的,你这个帖子跟http://topic.csdn.net/u/20101228/14/b74074f8-7592-4b03-a5c9-d1d481f993d1.html?29213 几乎一样。
|
makefile里面的ifeq语句,我在测试的时候老是报ifeq那句有语法错误,我也不知道怎么回事
只要注意target里面要有tab,一般不是有太大问题
可以用make -n看看到底执行了那些语句!!
只要注意target里面要有tab,一般不是有太大问题
可以用make -n看看到底执行了那些语句!!