2012-03-06 2 views
0

Я написал функции с использованием RcppArmadillo и встроенных пакетов, я использую Windows 7, R-2.14.1 и Rtools215, и путь проверен.Создание пакета, который использует RcppArmadillo

funs = cxxfunction(list(MHcpp = signature(…), IWcpp = signature(…), c(code1,code2), 
plugin="RcppArmadillo") # No compline and I they work fine as expected. 

Package.skeleton(“new”,funs) # to create the package skeleton and the dynamic libray 
# to build the package I use 
R CMD INSTALL –build new # I get the following error 
C:/Users/samuel/Documents/R/win-library/2.14/Rcpp/lib/i386/libRcpp.a(Dimension.o 
):Dimension.cpp:(.text+0x342): undefined reference to `_Unwind_SjLj_Unregister' 
………………………………………………………….. 
……………………………………………………………. 
C:/Users/samuel/Documents/R/win-library/2.14/Rcpp/lib/i386/libRcpp.a(Environment 
.o):Environment.cpp:(.text$_ZN4Rcpp11no_such_envC1Ei[Rcpp::no_such_env::no_such_ 
env(int)]+0x3fc): undefined reference to `_Unwind_SjLj_Unregister' 
C:/Users/samuel/Documents/R/win-library/2.14/Rcpp/lib/i386/libRcpp.a(Environment 
.o):Environment.cpp:(.text$_ZN4Rcpp11no_such_envC1Ei[Rcpp::no_such_env::no_such_ 
env(int)]+0x644): undefined reference to `_Unwind_SjLj_Resume' 
collect2: ld returned 1 exit status 
ERROR: compilation failed for package 'new' 
* removing 'C:/Users/samuel/Documents/R/win-library/2.14/new' 

Любые советы по устранению проблемы.

ответ

2

Вам необходимо использовать вариант package.skeleton, предоставляемый Rcpp, или в данном случае RcppArmadillo. То есть, звоните

RcppArmadillo.package.skeleton(...) 

не один из базы R.

Вы также можете посмотреть на то, как другие пакеты CRAN, которые зависят от RcppArmadillo организованы и сравнить различия.

+0

Я попытался использовать RcppArmadillo.package.skeleton («new», funs), он создает каталоги и файл new.cpp, содержащий функции MHcpp и IWcpp. Затем я проверил, можно ли установить пакет «новый» «Rcmd check new», это то, что я получаю. * проверка файла 'new/DESCRIPTION' ... OK * проверка содержимого пространства имен ... OK * проверка зависимостей пакетов ... OK * проверка, является ли это исходным пакетом ... OK * проверка if существует пространство имен ... OK * проверка исполняемых файлов ... OK * проверка наличия пакета «новый» ... ОШИБКА Ошибка установки. Что мне не хватает? Спасибо –

+0

Опубликовать воспроизводимый пример и все ошибки на rcpp-devel –

+0

Спасибо Дирк, проблема решена. Я использовал Rtools213, удалив старую версию, а затем установив новый «Rtools215», решив проблему. Спасибо за предложение. RcppArmadillo - отличный пакет, который ускорил мой код более чем на 70%. –

Смежные вопросы