第一次尝试,在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')