我正在尝试使用以下方法重新安装data.table:
install.packages("data.table")
我收到以下编译错误:
forder.c: In function ‘range_str’:
forder.c:296: error: expected end of line before ‘update’
make: *** [forder.o] Error 1
ERROR: compilation failed for package ‘data.table’
我从cran获得的软件包是: data.table_1.12.0.tar.gz 应该是与3.5兼容的版本,而不是data.table 1.10
的问题打开的系统是RHEL 6.9 +我也已经通过yum更新了gcc。
R版本也比yum更新了:R-core-3.5.1-1.el6.x86_64
R-core-devel-3.5.1-1.el6.x86_64
我在Google上可以找到的所有内容都与Rtools(Windows)或旧版本1.10有关,这似乎又是另一回事。
答案 0 :(得分:2)
您可以在EL6上安装较旧版本的data.table。 1.11.4工作;我不确定较新的版本。
require(devtools)
install_version("data.table", version = "1.11.4")
有关安装较旧版本软件包的更多信息:https://support.rstudio.com/hc/en-us/articles/219949047-Installing-older-versions-of-packages
答案 1 :(得分:0)
错误消息中提到的行是:
#pragma omp atomic update
该功能显然在4.7版之前的GCC中不可用,而在RedHat 6.9上,我目前从标准存储库中获得的最高收益是4.4.7。
意味着我需要一个较新的编译器,它可以处理此openmp功能。
答案 2 :(得分:0)
在R 3.5.0中安装data.table时出现了相同的错误
在CentOS 6.10(具有gcc和g ++版本4.4.7)上,这是我能够安装data.table的方式:
yum install devtoolset-6
scl enable devtoolset-6 bash
`which gcc` -v
,应该会看到更高的gcc版本R
install.packages("data.table")