Ошибка компиляции Rcpp

Я пытаюсь запустить тестовую функцию, но получаю ошибку компиляции:

library(Rcpp)  
library(inline) 

testfun = cxxfunction(  
signature(x="numeric", i="integer"),  
body = '  
NumericVector xx(x);    
int ii = as<int>(i);  
xx = xx * ii;  
return( xx );  
', plugin="Rcpp")  
testfun(1:5, 3)  

Ошибка в compileCode(f, code, language = language, verbose = verbose): ОШИБКА компиляции, функция (ы)/метод (ы) не созданы! Кроме того: Предупреждающее сообщение: запущенная команда «C:/PROGRA~1/R/R-215~1.1/bin/x64/R CMD SHLIB filede44a566900.cpp 2> filede44a566900.cpp.err.txt» имела статус 1

Буду признателен за вашу помощь. Я использую Windows 7, R2.15.1, 64 бит


person adam.888    schedule 11.08.2012    source источник
comment
вы используете cygwin? проверить, что он настроен правильно? какая версия компилятора используется? у меня были подобные проблемы раньше из-за ошибок связи   -  person Michael    schedule 11.08.2012


Ответы (1)


Попробуйте добавить verbose=TRUE, поскольку у вас возникла простая проблема с настройкой — возможно, ваш PATH неверен.

Ваш код правильный и отлично работает здесь под Linux (где не требуется дополнительная гимнастика, как в Windows).

Ваш немного отредактированный/с отступом пример, скопированный из моего буфера Emacs ESS:

R> library(inline)
R> 
R> testfun <- cxxfunction(signature(x="numeric", i="integer"), body = '
+    NumericVector xx(x);
+    int ii = as<int>(i);
+    xx = xx * ii;
+    return( xx );
+ ', plugin="Rcpp")
R> 
R> testfun(1:5, 3)
[1]  3  6  9 12 15
R> 
person Dirk Eddelbuettel    schedule 11.08.2012
comment
Обратите внимание, что Cygwin не поддерживается. - person Dirk Eddelbuettel; 14.08.2012