R CRAN 检查:autoheader:警告:缺少模板:HAVE_GSL_HEADER autoheader:使用 AC_DEFINE([HAVE_GSL_HEADER], [], [Description])
R CRAN Check: autoheader: warning: missing template: HAVE_GSL_HEADER autoheader: Use AC_DEFINE([HAVE_GSL_HEADER], [], [Description])
最近我正在维护的 CRAN 上的一个包出现以下错误:
(我没有改变任何东西 - 之前没有出现错误 - CRAN 可能添加了额外的检查)
Result: WARN
Output from running autoreconf:
autoheader: warning: missing template: HAVE_GSL_HEADER
autoheader: Use AC_DEFINE([HAVE_GSL_HEADER], [], [Description])
autoreconf: /usr/bin/autoheader failed with exit status: 1
Flavors: r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc
这是 CRAN 检查页面的 link:
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。
GithubLink打包源码:
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])。
将以下内容放入一个名为 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 上的一个包出现以下错误: (我没有改变任何东西 - 之前没有出现错误 - CRAN 可能添加了额外的检查)
Result: WARN Output from running autoreconf: autoheader: warning: missing template: HAVE_GSL_HEADER autoheader: Use AC_DEFINE([HAVE_GSL_HEADER], [], [Description]) autoreconf: /usr/bin/autoheader failed with exit status: 1 Flavors: r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc
这是 CRAN 检查页面的 link: 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。
GithubLink打包源码: 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])。
将以下内容放入一个名为 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
应该重建一切就好了。