makefile中ifeq,ifneq,ifdef和ifndef的区别与用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了makefile中ifeq,ifneq,ifdef和ifndef的区别与用法相关的知识,希望对你有一定的参考价值。
1,Makefile中的ifeq:ifeq($(ABC),XXX)
CFLAGS
+=
-DABC
endif
注意:
逗号和xxx之间必须有一个空格
更需要注意的是:
ifeq中的XXX后面不能带空格,如果XXX后面带了一个空格,那空格和XXX会被认为是一个整体
export
ABC
=
XXX[
][
]
这里用【】表示一个空格
那么
ifeq($(ABC),
XXX
...
2,Makefile中四种变量赋值的区别:Ask:
What
is
the
difference
between
:
VARIABLE
=
value
VARIABLE
?=
value
VARIABLE
:=
value
VARIABLE
+=
value
I
have
read
the section in
GNU
Make's
manual,
but
it
still
doesn't
...
3,,Makefile
中:=
?=
+=
=的区别:在Makefile中我们经常看到
=
:=
?=
+=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验
新建一个Makefile,内容为:ifdef
DEFINE_VRE
VRE
=
“Hello
Wo
...
,4,zz
makefile中=和:=的区别:在Makefile中我们经常看到
=
:=
?=
+=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验
新建一个Makefile,内容为:ifdef
DEFINE_VRE
VRE
=
“Hello
W
...
,5,嵌入式
Makefile中:=与=与+=与=的区别$@,$^,$<区别:在Makefile中我们经常看到
=
:=
?=
+=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验
新建一个Makefile,内容为:
ifdef
DEFINE_VRE
VRE
=
"HelloWorld!"
else
endif
ifeq
($(OPT),define)
VRE
?="Hello
。 参考技术A makefile中ifeq,ifneq,ifdef和ifndef的区别与用法
使用条件判断,可以让make根据运行时的不同情况选择不同的执行分支。条件表达式可以是比较变量的值,或是比较变量和常量的值。
一、示例
下面的例子,判断$(cc)变量是否“gcc”,如果是的话
如何使用Makefile(vim)中的ifeq检查头文件是否位于main.c中
我想在Makefile中使用“ifeq”检查我的“c代码”中是否存在头文件。我正在使用“test -f”来检查字符串是否存在于c文件中。我通过在我的c代码中注释掉头文件来测试它,但是当我重新初始化头文件时它从不输入“ifeq”语句。我在“ifeq”声明中遗漏了什么?我在Linux上使用vim文本文件。谢谢
我已经查看了“test -f”的shell命令,但无法弄清楚我做错了什么
ifeq ($(test -f my.h && echo true) , true)
CFLAGS += -DCONFIG_H
else
$(info VAR="$(VAR)")
endif
初始化头文件时,它进入else语句
答案
做你想做的最好的方法是:
ifeq ($(wildcard my.h),)
$(info VAR="$(VAR)")
else
CFLAGS += -DCONFIG_H
endif
以上是关于makefile中ifeq,ifneq,ifdef和ifndef的区别与用法的主要内容,如果未能解决你的问题,请参考以下文章
makefile ifneq 语句的使用疑问 ifeq ($(strip $(CHIP_VER)),6600L6) 这句话是啥意识
Makefile中的条件编译:ifeqifneqifdef和ifndef
makefile中ifneq "$(DTV_TESTING)" "YES"是啥意思啊?
解释这个makefile,这是一部分,我知道这是一个eclipse的工程,解释5到35行