R包源码安装,没有编译器

时间:2018-05-07 18:14:23

标签: r

我正在尝试从Linux(RHEL)服务器上的源代码安装一些软件包。但是每当包需要一些C ++编译时,它都会失败。

例如,我尝试安装Ckmeans.1d.dp包。如果我调用R CMD INSTALL Ckmeans.1.dp_4.2.1.tar.gz,我会得到以下输出(截断),您可以看到编译器被省略。

...* installing *source* package ‘Ckmeans.1d.dp’ ...
** libs
I/usr/include/R -DNDEBUG  -I/usr/local/include       -c Ckmeans.1d.dp.cpp -o Ckmeans.1d.dp.o
make: I/usr/include/R: Command not found
...
-shared -L/usr/local/lib64 -o Ckmeans.1d.dp.so Ckmeans.1d.dp.o Ckmeans.1d.dp_main.o dynamic_prog.o fill_SMAWK.o fill_log_linear.o fill_quadratic.o select_levels.o weighted_select_levels.o -L/usr/lib64/R/lib -lR
/bin/sh: line 2: -shared: command not found
make: *** [Ckmeans.1d.dp.so] Error 127
ERROR: compilation failed for package ‘Ckmeans.1d.dp’

我目前遇到的服务器只有R 3.1.1并且我没有管理员权限。 $Rhome/etc/Makeconf已定义CXXCC。我还确认已安装g++gcc

这里可能会发生什么?

1 个答案:

答案 0 :(得分:1)

总是一个空白的环境变量'价值得到扩展。也许(只是猜测一下)这个包会使用C ++ 11,所以$(CXX11} -shared会被扩展,而......变成-shared并触发错误。

查看R设置,例如通过less $(R HOME)/etc/Makevars,看看它的期望。

我认为如果必须的话,你可以在下面安装gcc等,比如~/bin。有些软件包需要编译器......