gpt4 book ai didi

Autotools AC_DEFINE 不起作用

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

我正在尝试定义一个 C 预处理器变量“DEBUG”(#define DEBUG)来激活开源项目中的调试日志记录,它使用 GNU Autotools。所以我放了一行

AC_DEFINE(DEBUG, 1, [My description for DEBUG])

configure.ac 中。

但是什么?重新生成config.h后

autoheader && ./config.status

我看一下config.h的内容,看到这个

/* My description for DEBUG */  
/* #undef DEBUG */

这里到底发生了什么?其他类似的 C 预处理器变量(由项目)以相同的方式定义。它们都出现了“#define”并且没有注释,为什么我的变成了“#undef”并且被注释掉了?
所以我尝试了很多方法来做到这一点,不仅仅是这种方式,我模仿了项目定义其他符号的方式。尝试了各种,从1到TRUE,FALSE,各种变量,从“DEBUG”到“FOOBAR”,“KJJJ”......但是它仍然那样工作,我感到非常沮丧。


更多信息:

在查看 config.h.in 时,我看到所有的行都是这样的:

#undef SOMEVARIABLE

(包括我的定义和config.h 中有效#defined 的定义。)

当我不运行 autoheader 并且只是将 config.h.in 中的变量行更改为

#define DEBUG

然后生成 config.h,然后我的 DEBUG 变量在 config.h 中有效 #define 出现

*Autoconf 版本 2.67
*我正在做的项目是ibus

最佳答案

运行 autoheader 会修改 config.h.in,但不会修改 config.statusconfig.status 不知道您对 configure.ac 所做的更改,也不知道要对 DEBUG 进行替换。在您运行 autoconf 和生成的 configure 脚本之前,它不会更新。

关于Autotools AC_DEFINE 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9033758/

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