gpt4 book ai didi

makefile - make & gmake 兼容 if else 语句

转载 作者:行者123 更新时间:2023-12-04 15:02:43 24 4
gpt4 key购买 nike

是否有任何类型的 if/else 语句与 GNU make 和 Berkley make (freeBSD) 兼容?

GNU制作:

 ifeq ($(BUILD_TYPE), debug)

伯克利品牌:
.ifdef (BUILD_TYPE)

最佳答案

不。您能做的最好的事情是使用具有构造名称的包含文件,例如:

include $(BUILD_TYPE).mk

其中 BUILD_TYPE 将是“调试”或其他什么。这当然不如 if/else 强大,但它可以以可移植的方式很好地完成一组有限的事情。

一般来说,编写一个可移植的 makefile 几乎不可能使用比 POSIX 提供的基础更复杂的任何功能。 makefile 的语法非常松散和自由,而传统 make 和 POSIX 标准提供的功能又如此贫乏,以至于大多数 make 供应商创建了大量不兼容的扩展。

通常,当人们对此感到疑惑时,我建议他们要么使用 automake,它会为您处理编写可移植 makefile 的繁琐工作,或者他们 promise 使用一种 make 或另一种 make,如果他们不这样做,则只需要求人们构建它有它。 GNU make 肯定会在各种各样的平台上运行……甚至是非 POSIX 平台。

关于makefile - make & gmake 兼容 if else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9096018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com