Ошибка Rcpp с Xcode 5.0 и OSX 10.8.5 и R 3.0.2
Я просто пытаюсь запустить Rcpp на моем Mac, но у меня проблемы. Я установил инструменты командной строки. Я установил 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 ответа
Как я упоминал в этом предыдущем ответе, вы должны исправить значения, жестко запрограммированные в двоичном файле R, предоставленном CRAN, который был построен со старым XCode, в котором все еще имелся компилятор на основе g++. У вас есть (как минимум) три варианта:
редактировать
etc/Makeconf
(ниже каталога установки R), чтобы исправитьCC
а такжеCXX
вclang
а такжеclang++
,Или создайте или отредактируйте
~/.R/Makevars
так же.Создать переменные среды
CC
а такжеCXX
с этими нагрузками.
Короче говоря, это то, что CC
а также CXX
иметь жестко запрограммированные значения времени компиляции R, которые больше не соответствуют значениям в вашей системе (используя XCode 5). В конце концов, R наверстает упущенное, и эта настройка будет ненужной.
В руководстве по установке и администрированию R больше сказано о том, какие переменные и какие значения следует использовать в данной архитектуре.
Поскольку g++ больше не включен в Xcode 5, вам придется перенаправить указатели на clang. На основании ответа @Romain Francois от Error, когда с Xcode 5.0 и Rcpp (инструменты командной строки ARE установлены), вам нужно будет создать свой собственный файл Makevars в каталоге ~/.R/. Пример содержимого Makevars будет содержать:
CC=clang
CXX=clang++
CFLAGS="-mtune=native -g -O2 -Wall -pedantic -Wconversion"
CXXFLAGS="-mtune=native -g -O2 -Wall -pedantic -Wconversion"
FLIBS=-lgfortran