Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
739 views
in Technique[技术] by (71.8m points)

r - Rcpp can't find Rtools: "Error 1 occurred building shared library"

I am running into a simple setup problem with Rcpp and I cannot get it to work. I tried to follow this example http://www.r-bloggers.com/user2013-the-rcpp-tutorial/ But when executing this code:

library(Rcpp)
evalCpp("1 + 1", showOutput= TRUE)

I get this output

C:/R/R-30~1.1/bin/x64/R CMD SHLIB -o "sourceCpp_33280.dll" "file8d01b0a675b.cpp" 
Error in sourceCpp(code = code, env = env, rebuild = rebuild, showOutput = showOutput,  : 
  Error 1 occurred building shared library.
WARNING: Rtools is required to build R packages but is not currently installed. 
Please download and install the appropriate version of Rtools before proceeding:

I have done the following things in an attempt to make it work:

  • installed Rtools 31 with install.Rtools()
  • installed R in C:RR-3.0.1
  • library files are stored in C:RR-3.0.1library
  • installed Rstudio in C:RRStudio
  • placed my script in C:R

most similar issues seem to suggest that a space was in the file path, therefore i moved pretty much everything I could. But still it fails to locate Rtools. I tried it on my laptop and on my desktop and both don't work, so there is probably something structural I am doing wrong.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Looks like neither your R binaries nor Rtools directories are in your system's PATH environment variable. Try this:

> writeLines(strsplit(Sys.getenv("PATH"), ";")[[1L]])
C:RRtoolsin
C:RRtoolsgcc-4.6.3in
C:RR-develinx64
[... and so on ...]

If your directories C:RR-3.0.1inx64 and C:RRtoolsin & C:RRtoolsgcc-*.*.*in (replace gcc-*-*-* with your version of the gcc-binaries) are not listed, the needed components can't be found. To be on the safe side, also create a system variable called CYGWIN with the value nodosfilewarning.

After changing/creating the PATH and CYGWIN variables, reboot. Then it should work and you can place your sources anywhere on your machine and also compile them manually using R CMD SHLIB.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...