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