代码之家  ›  专栏  ›  技术社区  ›  KJ7LNW

提供给的“ac_cv_func_malloc_0_nonnull”是什么/配置?

  •  0
  • KJ7LNW  · 技术社区  · 4 年前

    我和mingw进行了交叉比对,发现了这个错误:

    undefined reference to `rpl_realloc'
    

    之后 some searching 我发现这个问题可以在configure中解决,如下所示。ac或as在调用之前设置的环境变量/mingw64配置:

    ac_cv_func_malloc_0_nonnull=yes
    ac_cv_func_realloc_0_nonnull=yes
    

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

    0 回复  |  直到 4 年前
        1
  •  1
  •   John Bollinger    4 年前

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

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

    记录了它们的一般命名约定 in the Autoconf manual 。您询问的特定缓存变量名称会被记录下来,以缓存Autoconf的结果 AC_FUNC_MALLOC and AC_FUNC_REALLOC 宏。这些文件也说明了 rpl_realloc 名称

    允许在中使用这些变量 configure.ac 以编程方式确定这些检查的结果,但直接为这些变量赋值是一种相对恶劣的黑客行为。然而,在这种特殊情况下,错误表明,无论是谁为您试图构建的项目准备了自动工具,都做得很草率。如果伪造缓存变量可以让你成功构建一个工作程序,那么这是一个诱人的、比实际修复项目容易得多的替代方案。