gpt4 book ai didi

autoconf - 如何在 configure.ac 中取消定义宏

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

我正在写我的 configure.ac脚本,并有一些自定义启用参数,如果启用,它们会在我的 C 代码中定义宏。一个例子:

AC_ARG_ENABLE([example],
AS_HELP_STRING([--enable-example], [This is an example]))
AS_IF([test "x$enable_example" = "xyes"], [
AC_DEFINE(EXAMPLE_MACRO, 1, [This is a definition example])
])

现在说我有一个启用选项,如果启用,必须禁用 --enable-example 的效果。选项。我有正常的设置:
AC_ARG_ENABLE([another-feature],
AS_HELP_STRING([--another-feature], [This is a feature which enables something, but disables --enable-example]))
AS_IF([test "x$enable_another_feature" = "xyes"], [
AC_DEFINE(ANOTHER_FEATURE_MACRO, 1, [This is another feature definition])
])

现在我需要能够取消定义 EXAMPLE_MACRO宏,但我找不到任何东西可以撤消 AC_DEFINE .我错过了什么吗?

最佳答案

为什么不简单地延迟 AC_DEFINE函数调用?请注意,我不是 AS_IF 的忠实粉丝宏...

if test "x$enable_another_feature" = xyes ; then
# enable_example="no" # (optional)
AC_DEFINE([ANOTHER_FEATURE_MACRO], [1])
elif test "x$enable_example" = xyes ; then
AC_DEFINE([EXAMPLE_MACRO], [1])
fi

如果 AC_DEFINE不执行,对应的 #define ...未在配置 header 中实例化。已讨论 here .

关于autoconf - 如何在 configure.ac 中取消定义宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31954624/

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