gcc - 提供给 ./configure 的 `ac_cv_func_malloc_0_nonnull` 是什么?

标签 gcc makefile mingw configure autoconf

我正在与 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

这些宏的定义是什么,有关于这个主题的文档吗?我找不到任何...

最佳答案

What defines these macros, and as there any documentation on the subject?

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

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

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

关于gcc - 提供给 ./configure 的 `ac_cv_func_malloc_0_nonnull` 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70725646/

相关文章:

c++ - 已使用 VS2015 项目和解决方案构建后的 vc++ 解决方案清理项目的 msbuild

c++ - 访问大型 C/C++ 项目中的现有字段

c - 尝试将一个 c 文件链接到另一个时出现错误

c++ - 如何从 GCC 中的 C/C++ 源代码获取汇编程序输出?

makefile - gmake 从多个目录中获取目标文件列表

git - 结合mingw和git

c++ - 无法在 MinGW Installation Manager 中安装软件包

c - 对 conj、conjf、conjl 的 undefined reference

c++ - 在if语句中使用切换用例

c++ - GCC/C++17 中的模板模板类问题