Makefile 的if分支语句及变量赋值

susuqiyu 2010-12-28 03:03:58
我在照着一本书学习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”。先行谢过!
...全文
1658 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
susuqiyu 2010-12-30
  • 打赏
  • 举报
回复
问题经过指点已经得到解决,并从中获取知识。谢谢各位!
lvqqrainbow 2010-12-28
  • 打赏
  • 举报
回复
ifdef var是根据var值是否为空来判断真假的,你这个帖子跟http://topic.csdn.net/u/20101228/14/b74074f8-7592-4b03-a5c9-d1d481f993d1.html?29213 几乎一样。
liuscmail 2010-12-28
  • 打赏
  • 举报
回复
有时候,有shell脚本中if[ . ]判断
liuscmail 2010-12-28
  • 打赏
  • 举报
回复
makefile里面的ifeq语句,我在测试的时候老是报ifeq那句有语法错误,我也不知道怎么回事

只要注意target里面要有tab,一般不是有太大问题

可以用make -n看看到底执行了那些语句!!
yong_f 2010-12-28
  • 打赏
  • 举报
回复
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

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧