【问题标题】:What is `ac_cv_func_malloc_0_nonnull` as provided to ./configure?提供给 ./configure 的 `ac_cv_func_malloc_0_nonnull` 是什么?
【发布时间】:2022-01-16 12:12:33
【问题描述】:

我正在与 mingw 进行交叉编译并收到此错误:

undefined reference to `rpl_realloc'

some searching 之后,我发现这可以在configure.ac 中解决,或者作为调用./mingw64-configure 之前设置的环境变量:

ac_cv_func_malloc_0_nonnull=yes
ac_cv_func_realloc_0_nonnull=yes

什么定义了这些宏,以及关于该主题的任何文档?我找不到任何...

【问题讨论】:

    标签: gcc makefile mingw configure autoconf


    【解决方案1】:

    什么定义了这些宏,以及关于该主题的任何文档?

    Autoconf 使用ac_cv_ 前缀作为其“缓存变量”,其中记录了它执行的配置测试的结果。如果多次请求相同的检查,这些允许它使用先前确定的结果而不是再次执行检查。

    这些的一般命名约定记录在in the Autoconf manual。您询问的特定缓存变量名称已记录在案,以分别缓存 Autoconf 的 AC_FUNC_MALLOC and AC_FUNC_REALLOC 宏的结果。该文档还涉及rpl_realloc 名称。

    允许在configure.ac 中使用这些变量以编程方式确定这些检查的结果,但是直接为这些变量赋值是一种相对讨厌的技巧。然而,在这种特殊情况下,错误表明为您尝试构建的项目准备自动工具的人做的很草率。如果捏造缓存变量可以使您成功构建并获得工作程序,那么这是实际修复项目的诱人且更容易的替代方法。

    【讨论】:

      猜你喜欢
      • 2011-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-11
      • 2011-01-18
      • 2017-01-15
      • 2021-09-04
      • 1970-01-01
      相关资源
      最近更新 更多