R Rcpp ошибка установки в R 3.1.0
Я хочу установить Rcpp используя install.packages("Rcpp")
, но это не удалось. Сообщение об ошибке:
* installing *source* package ‘Rcpp’ ...
** package ‘Rcpp’ successfully unpacked and MD5 sums checked
** libs
g++ -I/usr/local/lib64/R/include -DNDEBUG -I../inst/include/ -I/usr/local/include -fpic -g -O2 -c Date.cpp -o Date.o
g++ -I/usr/local/lib64/R/include -DNDEBUG -I../inst/include/ -I/usr/local/include -fpic -g -O2 -c Module.cpp -o Module.o
g++ -I/usr/local/lib64/R/include -DNDEBUG -I../inst/include/ -I/usr/local/include -fpic -g -O2 -c Rcpp_init.cpp -o Rcpp_init.o
g++ -I/usr/local/lib64/R/include -DNDEBUG -I../inst/include/ -I/usr/local/include -fpic -g -O2 -c api.cpp -o api.o
g++ -I/usr/local/lib64/R/include -DNDEBUG -I../inst/include/ -I/usr/local/include -fpic -g -O2 -c attributes.cpp -o attributes.o
g++ -I/usr/local/lib64/R/include -DNDEBUG -I../inst/include/ -I/usr/local/include -fpic -g -O2 -c barrier.cpp -o barrier.o
g++ -shared -L/usr/local/lib64 -o Rcpp.so Date.o Module.o Rcpp_init.o api.o attributes.o barrier.o
installing to /home/sethbrin/R/x86_64-redhat-linux-gnu-library/3.1/Rcpp/libs
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/home/sethbrin/R/x86_64-redhat-linux-gnu-library/3.1/Rcpp/libs/Rcpp.so':
/home/sethbrin/R/x86_64-redhat-linux-gnu-library/3.1/Rcpp/libs/Rcpp.so: undefined symbol: _ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/home/sethbrin/R/x86_64-redhat-linux-gnu-library/3.1/Rcpp’
The downloaded source packages are in
‘/tmp/Rtmp6PKB8N/downloaded_packages’
Warning message:
In install.packages("Rcpp") :
installation of package ‘Rcpp’ had non-zero exit status
Тогда я использую
c++fit _ZNSt15basic_streambufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode
std::basic_streambuf<char, std::char_traits<char> >::seekoff(long long, std::_Ios_Seekdir, std::_Ios_Openmode)
Я искал некоторые решения для этого. Похоже, это из-за версии gcc. Но я не знаю, как изменить версию gcc, которую использует R для компиляции пакета Rcpp.
2 ответа
CRAN тестирует Rcpp, как и любой другой пакет (на данный момент) 6700+.
Вы можете увидеть сводный отчет о тестировании, и настройки теста включают в себя две машины на базе Fedora:
Таким образом, ваши проблемы могут быть локальными, или просто из-за использования более старой установки. В этом случае раздел Архив предоставляет вам доступ к более старой версии.
Я столкнулся с подобной проблемой. И после некоторых поисков, вот решения для изменения компилятора:
1. Если у вас есть привилегия root:
Я обнаружил, что Makeconf
Файл в каталоге R фактически устанавливает всю информацию, которая необходима для компиляции.
Чтобы найти путь к нему, эхо which R
в командной строке.
например, я получил как:/data/apps/R/3.1.2/bin/R
И тогда файл находится в:/data/apps/R/3.1.2/lib64/R/etc/Makeconf
затем sudo
отредактируйте файл на линии CC = XXX
и, возможно, более относительные линии.
Задача решена!
2. Если у вас есть только права локального пользователя.
Добавьте свои собственные конфигурации в ~/.R/Makevars
Тем не менее, @Dirk, вероятно, прав.
Для меня я наконец-то решил свою проблему, добавив -Doff_t=__off_t
в CFLAGS
(Моя проблема была error: unknown type name 'off_t'
). И я получил ошибку остановки, когда я вручную изменил части компиляторов...