Ошибка в Rcpp :: sourceCpp (): ошибка 1 при создании общей библиотеки - PullRequest
1 голос
/ 06 ноября 2019

Я пытаюсь использовать пакет mixl в R для моделирования дискретного выбора. mixl включает в себя прекомпилятор, который принимает спецификацию модели, написанную в виде простого текста, и преобразует ее в служебную функцию C ++, вызываемую из R.

Я запускаю R в Windows 10. Я установил Rtoolsуспешно и добавил исполняемый путь R ( C: \ Program Files \ R \ R-3.6.1 \ bin ) в список переменных среды.

> find_rtools()
[1] TRUE

> install.Rtools(check = T)
No need to install Rtools - You've got the relevant version of Rtools installed

Я установил *Пакет 1011 *, но при выполнении следующего кода

library(mixl)
data("Train", package = "mlogit")
Train$ID <- Train$id
Train$CHOICE <- as.numeric(Train$choice)
mixl_test <- "
ASC_B_RND <- @ASC_B + draw_1*@SIGMA_B;
TIME_A_RND <- @B_timeA + draw_2*@SIG_time;
TIME_B_RND <- @B_timeB + draw_2*@SIG_time;
U_PT <- @B_price*$price_A/1000 + TIME_A_RND*$time_A/60 + @B_change*$change_A;
U_Car <- ASC_B_RND + (@B_price*$price_B/1000 + TIME_B_RND*$time_B/60);
"
model_spec <- specify_model(mixl_test, Train)

появляется следующее сообщение об ошибке.

> C:/Rtools/mingw_64/bin/g++  -std=gnu++11 -I"C:/PROGRA~1/R/R-36~1.1/include" -DNDEBUG -I"C:/Users/takaa/Documents/R/win-library/3.6/mixl/include"  -I"C:/Users/takaa/Documents/R/win-library/3.6/Rcpp/include" -I"C:/Users/takaa/AppData/Local/Temp/RtmpOks2bQ/sourceCpp-x86_64-w64-mingw32-1.0.2"     -fopenmp   -O2 -Wall  -mtune=generic -c file2fbc33473a13.cpp -o file2fbc33473a13.o
file2fbc33473a13.cpp: In function 'void utilityFunction(Rcpp::NumericVector, UF_args2&)':
file2fbc33473a13.cpp:127:1: error: 'ASC_B_RND' was not declared in this scope
 ASC_B_RND <- ASC_B + draw[0]*SIGMA_B;

> ^
> 
> file2fbc33473a13.cpp:128:1: error: 'TIME_A_RND' was not declared in this scope
 TIME_A_RND <- B_timeA + draw[1]*SIG_time;
> 
> ^
> 
> file2fbc33473a13.cpp:129:1: error: 'TIME_B_RND' was not declared in this scope
 TIME_B_RND <- B_timeB + draw[1]*SIG_time;
> 
> ^
> 
> make: *** [C:/PROGRA~1/R/R-36~1.1/etc/x64/Makeconf:215:
> file2fbc33473a13.o] Error 1 
> 
> Error in Rcpp::sourceCpp(code =
> e1$cpp_code, env = cpp_container) :    Error 1 occurred building
> shared library.
> 

Я считаю, что вопросы похожи на [ Ошибка 1 при создании общегобиблиотека при поиске кода cpp внутри R и [https://github.com/aidenlab/straw/issues/20][2], но я перезагрузил Rstudio и Windows (и ничего не изменилось), и по второму вопросу мне следует изменить значение -std=c++11 с -std=gnu++11? Кто-нибудь сталкивался с подобной проблемой, в чем здесь проблема?

R версия 3.6.1 (2019-07-05) - «Действие пальцев» Copyright (C) 2019 Фонд R для статистических вычислений: x86_64-w64-mingw32 / x64 (64-разрядная версия))

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...