我正在尝试重新安装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
我在谷歌上找到的所有内容都与Rtools(Windows)或旧版本1.10有关,这似乎是别的。
您可以在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
在提到的错误消息行中是:
#pragma omp atomic update
这是在版本4.7之前的GCC和RedHat 6.9中显然不可用的功能,我从标准回购获得的最高值目前是4.4.7。
意味着我需要一个更新的编译器,它可以处理这个openmp功能。
使用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
启动R 3.5.0install.packages("data.table")
现在我能够安装data.table