gpt4 book ai didi

c - 使用 Makefile.options 文件中的定义作为 Makefile 变量中的条件

转载 作者:行者123 更新时间:2023-11-30 17:54:11 26 4
gpt4 key购买 nike

我正在使用clearmake,我正在尝试执行以下操作:

我有一个在clearmake 命令中使用的Makefile.fast.options 文件。在那里我有一个 USERFLAGS = -DFAST

在另一个选项文件中,我没有 -DFAST (Makefile.slow.options)。

在实际的Makefile中,如果定义了FAST,我想将输出二进制名称设置为一个名称,否则我想将其设置为另一个名称。 (如果定义了 FAST,我希望输出名称中包含 .fast,否则我想要 .slow。)

可以这样做吗?也许我缺少一种更简单的方法来使用选项文件来确定输出文件名?

我还考虑在 makefile 选项文件中定义文件名,看起来更容易:

FILENAME = 文件.Fast

但我想使用选项文件来覆盖 makefile 本身中的 FILENAME 定义。因此,如果在选项文件中设置了 FILENAME,则使用它,否则使用 makefile 中的文件名。这可能吗? ?

最佳答案

您不能只更改您构建的文件的名称。您必须实际更改 makefile 规则中的目标名称。这意味着目标名称需要是可变的。您选择使其可变的方式取决于您。

如果您已经根据快与慢包含了不同的选项文件,那么最简单、最明显的方法是在这些选项文件中设置变量。这就是我推荐的方式。

如果你想根据 USERFLAGS 的值来执行此操作,你可以这样做:

ifeq ($(filter -DFAST,$(USERFLAGS)),-DFAST)
FILENAME = File.fast
else
FILENAME = File.slow
endif

但是,(对我来说)这似乎更复杂且难以阅读和理解。

关于c - 使用 Makefile.options 文件中的定义作为 Makefile 变量中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15105375/

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