我想使用install.packages("Rcpp")
安装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版本。但我不知道如何更改R用于编译Rcpp包的gcc版本。
答案 0 :(得分:3)
CRAN测试Rcpp就像其他任何(现在的)6700+套餐一样。
您可以看到aggregate test report,测试设置包括两台基于Fedora的计算机:
因此,您的问题可能是本地问题,或者仅仅是因为使用较旧的设置。在这种情况下,Archive section可让您访问旧版本。
答案 1 :(得分:0)
我遇到过类似的问题。 经过一些搜索,以下是改变编译器的解决方案:
<强> 1。如果您拥有root权限:
我发现R目录中的Makeconf
文件实际上设置了编译所需的所有信息。
要找到它的路径,请在命令行中回显which R
。
e.g。我喜欢:
/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'
)。当我手动更改编译器的部分时,我得到了暂停的错误......