Rcpp Error with Xcode 5.0 and OSX 10.8.5 and R 3.0.2

断了今生、忘了曾经 提交于 2019-12-18 06:51:21

问题


I'm just trying to get Rcpp up and running on my Mac, but am struggling. I've installed the Command Line Tools. I've installed the Rcpp and inline packages. I try to run the following script in R, and get the following error.

fx <- cxxfunction(signature( x = "numeric" ),

  'NumericVector xx(x);

  return wrap( std::accumulate( xx.begin(), xx.end(), 0.0));',

  plugin = "Rcpp",verbose=TRUE)


Error in compileCode(f, code, language = language, verbose = verbose) : 
  Compilation ERROR, function(s)/method(s) not created! /bin/sh: llvm-g++-4.2: command not found
make: *** [file2e731b1c0ff8.o] Error 127

I realize this is very similar to a posted question. But I'd appreciate a reference to more details on where to find the makevars file.

Thanks.


回答1:


As I alluded to in this previous answer, you must correct the values hard-coded in the R binary provided by CRAN which was built with the old XCode which still had the g++-based compiler. You have (at least) three choices:

  1. Edit etc/Makeconf (below R's install directory) directly to correct CC and CXX to clang and clang++.

  2. Alternatively, create or edit ~/.R/Makevars similarly.

  3. Create environment variables CC and CXX with these loadings.

The long and short of it is that CC and CXX have hard-coded values from R's compile-time which no longer correspond the values on your system (using XCode 5). Eventually, R will catch up and this adjustment will be unnecessary.

The R Installation and Administration manual has more to say about which variables and which values you should use on a given architecture.




回答2:


Since g++ is no longer included in Xcode 5, you will have to re-direct the pointers to clang. Based on @Romain Francois' answer from Error when with Xcode 5.0 and Rcpp (Command Line Tools ARE installed), you will have to create your own Makevars file in the ~/.R/ directory. Example content of Makevars would contain:

CC=clang
CXX=clang++
CFLAGS="-mtune=native -g -O2 -Wall -pedantic -Wconversion"
CXXFLAGS="-mtune=native -g -O2 -Wall -pedantic -Wconversion"
FLIBS=-lgfortran


来源:https://stackoverflow.com/questions/19546672/rcpp-error-with-xcode-5-0-and-osx-10-8-5-and-r-3-0-2

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!