【问题标题】:R CRAN Check: autoheader: warning: missing template: HAVE_GSL_HEADER autoheader: Use AC_DEFINE([HAVE_GSL_HEADER], [], [Description])R CRAN 检查:自动标题:警告:缺少模板:HAVE_GSL_HEADER 自动标题:使用 AC_DEFINE([HAVE_GSL_HEADER],[],[描述])
【发布时间】: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])

【问题讨论】:

    标签: r gsl cran


    【解决方案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 应该重建一切就好了。

    【讨论】:

    • 非常感谢!我会试试这个。不幸的是,我不得不上传到 CRAN 进行检查……因为 Travis CI、R-Hub 和我自己的计算机在检查时没有显示此消息。这个检查现在似乎只在 CRAN 构建服务器上实现...
    猜你喜欢
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    相关资源
    最近更新 更多