【发布时间】:2021-05-28 09:07:51
【问题描述】:
我在构建使用 autoconf 的 C 项目时经常遇到此问题,因此我正在寻找一种可重复的方法来执行此操作。我经常有一个库,我想在其中 undef 一个由 autoheader 在 config.h 文件中生成的宏。例如 - 现在我想确保 #define CLOCK_GETTIME 1 生成为 #undef CLOCK_GETTIME。
假设在这个例子中 clock_gettime 是这样检查的。
AC_CHECK_FUNCS([clock_gettime])
过去我手动编辑文件以删除定义。但我不敢相信没有什么我不能传递给./configure 来覆盖AC_CHECK_FUNCS 的默认行为。
如何更改 autoconf 决定在我的 config.h 中定义的内容?
【问题讨论】:
-
删除定义有什么要求?
-
它是一个标准的
config.hautoheader 样式文件。要求只是让 autoconf 生成一个#undef MACRO,其中通常会出现#define MACRO 1。 为什么这是必要的,因为有时我想使用一些开源库,但想要或需要自定义。代码支持它 - 但我不能让autoconf做我想做的事。