R CRAN检查:自动标头:警告:缺少模板:HAVE_GSL_HEADER自动标头:使用AC_DEFINE([HAVE_GSL_HEADER],[],[Description])

时间:2019-03-10 17:49:22

标签: r gsl cran

最近我正在维护的CRAN上的软件包出现以下错误: (我没有做任何更改-之前没有错误-CRAN可能添加了其他检查)

  

结果:警告        运行autoreconf的输出:        自动标头:警告:缺少模板:HAVE_GSL_HEADER        自动标头:使用AC_DEFINE([HAVE_GSL_HEADER],[],[描述])        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(H​​AVE_GSL_HEADER),[HAVE_GSL = FALSE])

1 个答案:

答案 0 :(得分:1)

将以下内容放入名为diff.patch的文件或顶层目录中的任意文件。

diff --git a/configure.ac b/configure.ac
index e643140..0b256a6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,8 @@ fi

 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])
+    AC_CHECK_HEADERS([gsl/gsl_version.h],
+    AC_DEFINE(HAVE_GSL_HEADER, [], [Description]),[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])

运行patch -p1 < diff.patch
现在autoreconf应该重建一切正常。