Xcode 5.0和OSX 10.8.5和R 3.0.2的Rcpp错误

时间:2013-10-23 15:59:26

标签: xcode r macos rcpp

我只是想在我的Mac上启动并运行Rcpp,但我正在努力。我安装了命令行工具。我已经安装了Rcpp和内联包。我尝试在R中运行以下脚本,并收到以下错误。

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

我意识到这与发布的问题非常相似。但我很欣赏有关在哪里找到makevars文件的更多细节的参考。

感谢。

2 个答案:

答案 0 :(得分:5)

正如我alluded to in this previous answer,你必须纠正CRAN提供的R二进制文件中硬编码的值,这是用 XCode构建的,它仍然有基于g ++的编译器。你有(至少)三种选择:

  1. 直接修改etc/Makeconf(在R的安装目录下)以更正CCCXXclangclang++

    < / LI>
  2. 或者,类似地创建或编辑~/.R/Makevars

  3. 使用这些加载创建环境变量CCCXX

  4. 它的长短是CCCXX具有R编译时的硬编码值,这些值不再与系统上的值相对应(使用XCode 5)。最终,R将迎头赶上,这种调整将是不必要的。

    “R安装和管理”手册更多地说明了您应该在给定体系结构上使用哪些变量和值。

答案 1 :(得分:3)

由于Xcode 5中不再包含g ++,因此您必须将指针重定向到clang。 基于@Romain Francois从Error when with Xcode 5.0 and Rcpp (Command Line Tools ARE installed)的回答,您必须在〜/ .R /目录中创建自己的Makevars文件。 Makevars的示例内容包含:

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