【发布时间】:2019-03-10 17:49:22
【问题描述】:
最近我正在维护的 CRAN 上的一个包出现以下错误: (我没有改变任何东西 - 错误只是之前不存在 - CRAN 可能添加了额外的检查)
结果:警告 运行 autoreconf 的输出: 自动标题:警告:缺少模板:HAVE_GSL_HEADER 自动标题:使用 AC_DEFINE([HAVE_GSL_HEADER], [], [Description]) autoreconf:/usr/bin/autoheader 失败,退出状态:1 口味:r-devel-linux-x86_64-fedora-clang、r-devel-linux-x86_64-fedora-gcc
这是 CRAN 检查页面的链接: https://cran.r-project.org/web/checks/check_results_ridge.html
该错误似乎只出现在 r-devel-linux-x86_64-fedora-clang、r-devel-linux-x86_64-fedora-gcc。
Github 链接到包源代码: https://github.com/SteffenMoritz/ridge
该软件包使用 GSL 库。 (如果有人想知道错误消息中的 GSL)
不幸的是我只完成了包的维护,对C的东西没有太多的了解。
我认为,错误消息与包的 R 部分无关。我必须在 C 文件的某处添加 AC_DEFINE 吗?
有人可以解释一下,错误消息到底对我说了什么。猜猜这可能已经帮助我弄清楚了。
编辑: 认为我必须更改此文件中的某些内容(只是猜测) https://github.com/SteffenMoritz/ridge/blob/master/configure.ac
但那里的代码如下:
if test "${HAVE_GSL}" = TRUE; then
dnl Define HAVE_GSL_H in src/config.h
AC_CHECK_HEADERS([gsl/gsl_version.h],AC_DEFINE(HAVE_GSL_HEADER), [HAVE_GSL=FALSE])
if test "${HAVE_GSL}" = FALSE; then
AC_MSG_WARN([gsl headers not found, perhaps check the path?])
AC_MSG_WARN([ridge will be installed, but some functions will be
unavailable])
fi
fi
所以似乎有一个声明 AC_DEFINE(HAVE_GSL_HEADER), [HAVE_GSL=FALSE])。
【问题讨论】: