相关疑难解决方法(0)

Makefile ifeq逻辑或

如何使用make的ifeq运算符执行逻辑OR ?

例如,我有(简化):

ifeq ($(GCC_MINOR), 4)
    CFLAGS += -fno-strict-overflow
endif
ifeq ($(GCC_MINOR), 5)
    CFLAGS += -fno-strict-overflow
endif
Run Code Online (Sandbox Code Playgroud)

但想巩固这些界限.

(是的,是的,autotools,配置等等;对于当前的情况太过苛刻,想在这里保留Makefile中的所有内容)

[与此问题逻辑相反:如何在'ifeq'语句中使用多个条件 ]

makefile

83
推荐指数
4
解决办法
12万
查看次数

复杂条件检查Makefile

在我的Makefile中,我想检查以下复杂情况:

ifdef VAR1 || VAR2 || VAR3
action
endif
Run Code Online (Sandbox Code Playgroud)

但文档说不支持这样的语法.因此,我想到的唯一简单的解决方法是使用串联:

ifneq ($(VAR1)$(VAR2)$(VAR3),)
action
endif
Run Code Online (Sandbox Code Playgroud)

还有其他更正确的解决方案吗?

对于以下情况:

ifdef VAR1 && VAR2 && VAR3
action
endif
Run Code Online (Sandbox Code Playgroud)

一个人需要写

ifdef VAR1
ifdef VAR2
ifdef VAR3
action
endif
endif
endif
Run Code Online (Sandbox Code Playgroud)

这也很难看.还有更优雅的选择吗?

makefile

24
推荐指数
1
解决办法
2万
查看次数

Makefile OR 条件

我想要多个 if 条件并想要组合。

ifeq ($(TAG1), on)
LD_FLAGS += -ltestlibrary
endif
ifeq ($(TAG2), on)
LD_FLAGS += -ltestlibrary
endif
Run Code Online (Sandbox Code Playgroud)

我想做一些事情,比如:

ifeq ($(TAG1) || $(TAG2), on)
LD_FLAGS += -ltestlibrary
endif
Run Code Online (Sandbox Code Playgroud)

我该怎么做?SO Makefile ifeq logical or or How to Use of Multiple condition in 'ifeq' 语句中的答案给出了其他方法。

linux makefile

6
推荐指数
1
解决办法
8265
查看次数

标签 统计

makefile ×3

linux ×1