3

我正在运行 64 位的 ubuntu。我有这个最小的测试包,用于学习如何做这些事情(我正在关注本教程,除了包中还有一些 c 代码)。当我跑步时

R CMD check MySmallPackage

在它上面,它工作正常(见下文)。然后,我跑

R CMD build MySmallPackage

它也有效(见下文)。所以现在,我将生成的 .tar.gz 发送给运行 win7 64 位(和 64 位 R)的朋友,他收到以下错误消息:

*** arch - i386
ERROR: compilation failed for package 'MySmallPackage'
* removing 'C:/Users/ES/Documents/R/win-library/2.15/MySmallPackage'
Warning in install.packages :
  running command 'C:/PROGRA~1/R/R-215~1.1/bin/x64/R CMD INSTALL -l "C:/Users/ES/Documents/R/win-library/2.15"   "C:/Users/ES/Downloads/MySmallPackage_0.1.1(1).tar.gz"' had status 1
Warning in install.packages :
  installation of package ‘C:/Users/ES/Downloads/MySmallPackage_0.1.1(1).tar.gz’ had non-zero exit status

这很令人费解。任何人都可以指出可能导致此问题的原因(我已经很多年没有使用过 Windows,但该软件包在 linux 上安装得很好)。错误消息对我来说有点神秘。

$ R CMD check MySmallPackage
* using log directory ‘~/MySmallPackage.Rcheck’
* using R version 2.15.2 (2012-10-26)
* using platform: x86_64-pc-linux-gnu (64-bit)
* using session charset: UTF-8
* checking for file ‘MySmallPackage/DESCRIPTION’ ... OK
* checking extension type ... Package
* this is package ‘MySmallPackage’ version ‘0.1.1’
* 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 executable files ... OK
* checking whether package ‘MySmallPackage’ can be installed ... OK
* checking installed package size ... OK
* checking package directory ... OK
* checking for portable file names ... OK
* checking for sufficient/correct file permissions ... OK
* checking DESCRIPTION meta-information ... OK
* checking top-level files ... OK
* checking for left-over files ... OK
* checking index information ... OK
* checking package subdirectories ... OK
* checking R files for non-ASCII characters ... OK
* checking R files for syntax errors ... OK
* checking whether the package can be loaded ... OK
* checking whether the package can be loaded with stated dependencies ... OK
* checking whether the package can be unloaded cleanly ... OK
* checking whether the namespace can be loaded with stated dependencies ... OK
* checking whether the namespace can be unloaded cleanly ... OK
* checking loading without being on the library search path ... OK
* checking for unstated dependencies in R code ... OK
* checking S3 generic/method consistency ... OK
* checking replacement functions ... OK
* checking foreign function calls ... OK
* checking R code for possible problems ... OK
* checking Rd files ... OK
* checking Rd metadata ... OK
* checking Rd cross-references ... OK
* checking for missing documentation entries ... OK
* checking for code/documentation mismatches ... OK
* checking Rd \usage sections ... OK
* checking Rd contents ... OK
* checking for unstated dependencies in examples ... OK
* checking line endings in C/C++/Fortran sources/headers ... OK
* checking line endings in Makefiles ... OK
* checking for portable compilation flags in Makevars ... OK
* checking for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) ... OK
* checking compiled code ... OK
* checking examples ... OK
* checking PDF version of manual ... OK


$R CMD build MySmallPackage
* checking for file ‘MySmallPackage/DESCRIPTION’ ... OK
* preparing ‘MySmallPackage’:
* checking DESCRIPTION meta-information ... OK
* cleaning src
* checking for LF line-endings in source and make files
* checking for empty or unneeded directories
* building ‘MySmallPackage_0.1.1.tar.gz’
4

1 回答 1

5

您需要为 Linux、Mac 和 Windows 机器构建不同的包。

有(至少)四种可能性:

  1. 在r-forge上托管您的包。每天晚上 r-forge 都会构建一个 linux、windows 和 mac 版本的包。
  2. 使用由 Uwe Ligges 维护的在线 windows包生成器。
  3. 将源代码发送给您的朋友,让他在 Windows 机器上构建包。当我用谷歌搜索“构建 r 包窗口”时,我得到了一些有用的结果。
  4. 在github上托管你的包,然后使用devtools包安装包。
于 2013-01-08T09:52:30.153 回答