请阅读【ARM GCC Makefile 编译专栏导读】

Makefile ifeq 和 ifneq 条件指令学习

在Makefile中,你可以使用ifeqifneq条件指令来测试变量的值。

下面是对这两个指令的简单介绍:
ifeq:这个指令用于测试两个值是否相等:

  • 如果相等,它就会执行接下来的部分,直到对应的endif
  • 如果不相等,它就会跳过这一部分。
ifeq ($(CC),gcc) 
	CFLAGS = -Wall 
else 
	CFLAGS = 
endif

在这个例子中,如果变量CC的值是gcc,那么变量CFLAGS就会被设置为-Wall;否则CFLAGS将为空。

ifneq:这个指令和ifeq指令正好相反,它用于测试两个值是否不相等:

  • 如果不相等,它就会执行接下来的部分,直到对应的endif
  • 如果相等,它就会跳过这一部分。
ifneq ($(CC),gcc) 
	CFLAGS = 
else 
	CFLAGS = -Wall 
endif

在这个例子中,如果变量CC的值不是gcc,那么变量CFLAGS将为空;否则CFLAGS就会被设置为-Wall

注意ifeqifneq指令的参数可以是变量,也可以是字符串。如果是字符串,你需要用引号将它们括起来,例如ifeq ("$(CC)","gcc")

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐