应该如何重置 AC_CACHE_CHECK?
在 autoconf 中,我正在检查标题。我已经添加了一些逻辑来更加努力地在可能不在默认包含路径中的 std 文件夹中查找头文件。我这样做的方法是首先尝试找到一个带有内置 AC_CHECK_HEADER 的头文件。如果未找到 header ,我会修改 CPPFLAGS 并重试。
问题在于 autoconf 的缓存。我想强制检查(或绕过缓存检查。)如果我不强制检查,无论 autoconf 是否找到 header ,它都会提取在第一次检查中找到的内容,呃。
谢谢, 陈子
最佳答案
取消设置缓存变量,例如ac_cv_header_syslog_h
。您可以检查 config.log
以了解您感兴趣的缓存变量的确切拼写。不幸的是,无法移植地取消设置 shell 变量。 Autoconf 使用的内部解决方法是使用 $as_unset
,如果支持,它会扩展为 unset
。所以你可以这样写:
$as_unset ac_cv_header_syslog_h
不过,这应该适用于当今大多数合理的系统。
更好、更直接的解决方案可能是为第一轮检查正确设置 CPPFLAGS
。正如您所注意到的,您正在尝试的内容并没有得到真正的支持。
关于autotools - 应该如何重置 AC_CACHE_CHECK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1632767/