【问题标题】:Package Passes R CMD check in Linux, Windows Binary Fails包在 Linux 中通过 R CMD 检查,Windows 二进制文件失败
【发布时间】:2015-08-04 06:36:07
【问题描述】:

我向 CRAN 提交了我创建的强大软件包的 0.1-8 版。 R CMD Check 在我运行 64 位 Ubuntu 和 Rstudio 的计算机上通过。 Linux 和 Mac 二进制文件正在 CRAN 上传递。 Windows 二进制文件在 CRAN 上失败。版本 0.1-7 和 0.1-8 之间的唯一区别是我更改了命名空间以遵守新版本的 R 并且我改进了文档。没有任何代码被更改。

https://cran.r-project.org/web/packages/robustreg/index.html

https://cran.r-project.org/web/checks/check_results_robustreg.html

谁能帮我解决以下错误消息?

* using log directory 'd:/Rcompile/CRANpkg/local/3.2/robustreg.Rcheck'
* using R version 3.2.1 (2015-06-18)
* using platform: x86_64-w64-mingw32 (64-bit)
* using session charset: ISO8859-1
* checking for file 'robustreg/DESCRIPTION' ... OK
* this is package 'robustreg' version '0.1-8'
* checking package namespace information ... OK
* checking package dependencies ... OK
* checking if this is a source package ... OK
* checking if there is a namespace ... OK
* checking for hidden files and directories ... OK
* checking for portable file names ... OK
* checking whether package 'robustreg' can be installed ... ERROR
Installation failed.
See 'd:/Rcompile/CRANpkg/local/3.2/robustreg.Rcheck/00install.out' for details.
* DONE
The installation logfile:
* installing *source* package 'robustreg' ...
** package 'robustreg' successfully unpacked and MD5 sums checked
** libs

*** arch - i386
make[1]: Entering directory `/cygdrive/d/temp/RtmpI9QsDz/R.INSTALL4b704d36335d/robustreg/src-i386'
g++  -I"D:/RCompile/recent/R-3.2.1/include"            -I"d:/RCompile/CRANpkg/lib/3.2/Rcpp/include" -I"d:/RCompile/CRANpkg/lib/3.2/RcppArmadillo/include" -I"d:/RCompile/r-compiling/local/local320/include"     -O3 -Wall  -mtune=core2            -c RcppExports.cpp -o RcppExports.o
g++  -I"D:/RCompile/recent/R-3.2.1/include"            -I"d:/RCompile/CRANpkg/lib/3.2/Rcpp/include" -I"d:/RCompile/CRANpkg/lib/3.2/RcppArmadillo/include" -I"d:/RCompile/r-compiling/local/local320/include"     -O3 -Wall  -mtune=core2            -c fit.cpp -o fit.o
g++ -shared -s -static-libgcc -o robustreg.dll tmp.def RcppExports.o fit.o -Ld:/RCompile/r-compiling/local/local320/lib/i386 -Ld:/RCompile/r-compiling/local/local320/lib -LD:/RCompile/recent/R-3.2.1/bin/i386 -lR
fit.o:fit.cpp:(.text$_ZN4arma27glue_times_redirect2_helperILb0EE5applyINS_3MatIdEENS_3ColIdEEEEvRNS3_INT_9elem_typeEEERKNS_4GlueIS7_T0_NS_10glue_timesEEE[void arma::glue_times_redirect2_helper<false>::apply<arma::Mat<double>, arma::Col<double> >(arma::Mat<arma::Mat<double>::elem_type>&, arma::Glue<arma::Mat<double>, arma::Col<double>, arma::glue_times> const&)]+0x262): undefined reference to `dgemv_'
fit.o:fit.cpp:(.text$_ZN4arma27glue_times_redirect2_helperILb0EE5applyINS_3MatIdEENS_3ColIdEEEEvRNS3_INT_9elem_typeEEERKNS_4GlueIS7_T0_NS_10glue_timesEEE[void arma::glue_times_redirect2_helper<false>::apply<arma::Mat<double>, arma::Col<double> >(arma::Mat<arma::Mat<double>::elem_type>&, arma::Glue<arma::Mat<double>, arma::Col<double>, arma::glue_times> const&)]+0x4a2): undefined reference to `dgemv_'
fit.o:fit.cpp:(.text$_ZN4arma27glue_times_redirect2_helperILb0EE5applyINS_3MatIdEENS_3ColIdEEEEvRNS3_INT_9elem_typeEEERKNS_4GlueIS7_T0_NS_10glue_timesEEE[void arma::glue_times_redirect2_helper<false>::apply<arma::Mat<double>, arma::Col<double> >(arma::Mat<arma::Mat<double>::elem_type>&, arma::Glue<arma::Mat<double>, arma::Col<double>, arma::glue_times> const&)]+0xb4c): undefined reference to `dgemv_'
collect2: ld returned 1 exit status
make[1]: Leaving directory `/cygdrive/d/temp/RtmpI9QsDz/R.INSTALL4b704d36335d/robustreg/src-i386'
make[1]: Entering directory `/cygdrive/d/temp/RtmpI9QsDz/R.INSTALL4b704d36335d/robustreg/src-i386'
make[1]: Leaving directory `/cygdrive/d/temp/RtmpI9QsDz/R.INSTALL4b704d36335d/robustreg/src-i386'
no DLL was created
ERROR: compilation failed for package 'robustreg'
* removing 'd:/Rcompile/CRANpkg/lib/3.2/robustreg'
* restoring previous 'd:/Rcompile/CRANpkg/lib/3.2/robustreg'

【问题讨论】:

  • 我会认真考虑将其发布到 R-package-devel:stat.ethz.ch/mailman/listinfo/r-package-devel(那里和这里都有很多超级乐于助人的人)
  • 我周五做了。它没有经过模组批准。
  • 你发给win-builder.r-project.org了吗?我的包没有在 Windows 上运行时遇到了同样的问题,win-builder 帮助我修复了它。
  • 再次发帖。有些版主必须标记首次发布的海报;之后你就好了。该列表比 SO 更好。
  • 另外,由于这似乎是一个 Rcpp/RcppArmadillo 问题,请考虑我们的列表。

标签: r


【解决方案1】:

根据its automatically-created GitHub mirror and the src/ directory there in,您没有文件src/Makevars.win。你现在有一个与 LAPACK 例程的链接错误。

只需添加一个文件,例如 this one added when you use RcppArmadillo.package.skeleton() 只包含

PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)

你应该准备好了:

我很惊讶这以前有效。你很幸运——我们的文档清楚地表明你需要它。

【讨论】:

  • 就是这样。已在 win-builder 上修复和测试。
  • 很高兴听到。在这种情况下,您可能想通过“接受”(点击勾选标记)和/或投票(点击向上箭头)表示感谢。
猜你喜欢
  • 1970-01-01
  • 2019-08-27
  • 2020-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多