基本的makefile ifeq 如何

Posted

技术标签:

【中文标题】基本的makefile ifeq 如何【英文标题】:basic makefile ifeq how to 【发布时间】:2015-06-10 00:59:21 【问题描述】:

我刚刚学习 Makefiles 并且遇到了 ifeq 问题。

版本 = GNU Make 3.82

这是我的简单 Makefile:

CHECK := 0
CHECK2 := 0                                                                                     

check :  
    @echo "Check=$CHECK"
    @echo "Check2=$CHECK2"    
ifeq ($CHECK2,$CHECK) 
    @echo "EQUAL"
else
    @echo "NOT EQUAL"
endif

这是输出:

Check=0
Check2=0                                                                                     
NOT EQUAL

为什么我没有看到“EQUAL”?

谢谢!

【问题讨论】:

【参考方案1】:

Makefile(和 make)对空格非常敏感。 CHECK2 的定义中似乎有很多空格(但CHECK 没有),所以它们不相等。

【讨论】:

就是这样!现在可以使用了,谢谢! (伙计,我花了很多时间) 具体(来自手册)“尾随空格字符不会从变量值中剥离”。 谢谢伊坦。我想我应该 RTFM。对于其他有同样问题的人,手册中的声明可以在 gnu.org make manual > 6.2 the Two Flavors of Variables 中找到。我只看了 > 6.5 设置变量

以上是关于基本的makefile ifeq 如何的主要内容,如果未能解决你的问题,请参考以下文章

makefie文件的基本说明和使用

makefie文件的基本说明和使用

makefile中ifeq,ifneq,ifdef和ifndef的区别与用法

makefile中ifeq,ifneq,ifdef和ifndef的区别与用法

在 makefile 中使用 ifeq 编译 C 或 CPP 文件

Makefile文件的基本单元 —— 规则