Rcpp、Rtools和cygwin:安装Rcpp失败



第一次尝试,在cygwin中安装R 3.1.3:

>PATH=/usr/local/bin:/usr/bin
在R

:

>install.packages("Rcpp",repos="http://cran.us.r-project.org")

产生错误

[...]
/usr/lib/gcc/x86_64-pc-cygwin/4.9.2/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lpcre
/usr/lib/gcc/x86_64-pc-cygwin/4.9.2/../../../../x86_64-pc-cygwin/bin/ld: cannot find -llzma
/usr/lib/gcc/x86_64-pc-cygwin/4.9.2/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lbz2
/usr/lib/gcc/x86_64-pc-cygwin/4.9.2/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lz
/usr/lib/gcc/x86_64-pc-cygwin/4.9.2/../../../../x86_64-pc-cygwin/bin/ld: cannot find -liconv
/usr/lib/gcc/x86_64-pc-cygwin/4.9.2/../../../../x86_64-pc-cygwin/bin/ld: cannot find -licuuc
/usr/lib/gcc/x86_64-pc-cygwin/4.9.2/../../../../x86_64-pc-cygwin/bin/ld: cannot find -licui18n
collect2: error: ld returned 1 exit status
/usr/lib/R/share/make/shlib.mk:6: recipe for target 'Rcpp.dll' failed
make: *** [Rcpp.dll] Error 1
ERROR: compilation failed for package ‘Rcpp’
* removing ‘/usr/lib/R/site-library/Rcpp’

所以我尝试安装Rtools 3.2。按照cygwin安装的指示,我没有安装Rtools中包含的cygwin的dll。

>PATH=/cygdrive/c/Rtools/bin:/cygdrive/c/Rtools/gcc-4.6.3/bin:$PATH

,在R中,当尝试执行安装

时,会产生静默的非零状态退出。
Installing package into ‘/usr/lib/R/site-library’
(as ‘lib’ is unspecified)
trying URL 'http://cran.us.r-project.org/src/contrib/Rcpp_0.11.6.tar.gz'
Content type 'application/x-gzip' length 2352221 bytes (2.2 MB)
opened URL
==================================================
downloaded 2.2 MB

The downloaded source packages are in
        ‘/tmp/Rtmp71eoxd/downloaded_packages’
Warning message:
In install.packages("Rcpp", repos = "http://cran.us.r-project.org") :
  installation of package ‘Rcpp’ had non-zero exit status

详细模式不能提供更多信息。我找了很久,但是我现在毫无头绪。有人有主意吗?由于

我在处理同样的错误时感到很沮丧。在Cygwin安装的"Select Packages"窗口中,搜索这些库并安装它们。例如:pcre, lzma, bz2,…在安装了所有这些之后,我终于能够编译了。

R本身不支持Cygwin,并且从未被支持过。

五年后编辑:由于有人认为应该再次否决这个答案,请允许我引用R安装和管理手册中的C.7节

C.7Cygwin

32位版本从未足够好地通过R的make检查,并且在R 3.3.0中删除了早期实验的残余支持。

不支持64位版本。

我还有一点要补充的。我只是在他们自己的手册中重新陈述了R Core对他们自己的软件的看法。

除非你有特殊的理由使用3.1.3,否则请将你的R更新到最新版本(3.2.1)。

许多包甚至没有为任何东西编译Windows二进制文件,只有最新的R版本,所以99%的时间,这解决了问题。

如果你只想安装Rcpp,试试:

install.packages("Rcpp", type='source')

最新更新