我只是想在我的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文件的更多细节的参考。
感谢。
答案 0 :(得分:5)
正如我alluded to in this previous answer,你必须纠正CRAN提供的R二进制文件中硬编码的值,这是用旧 XCode构建的,它仍然有基于g ++的编译器。你有(至少)三种选择:
直接修改etc/Makeconf
(在R的安装目录下)以更正CC
和CXX
至clang
和clang++
。
或者,类似地创建或编辑~/.R/Makevars
。
使用这些加载创建环境变量CC
和CXX
。
它的长短是CC
和CXX
具有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