Bash 使用备用GCC构建R包

Bash 使用备用GCC构建R包,bash,gcc,r,Bash,Gcc,R,我使用的系统在/usr/local/bin/GCC中有GCC4.5(实验版),这对于一些R包来说是有问题的。我想改为在/usr/bin/GCC中使用系统GCC 我曾尝试在Bash配置文件(.bashrc、.Bash_profile等)以及命令行中设置CC和CXX,但尽管Bash能够识别更改,R却无法识别 如何让R使用/usr/bin中的GCC版本而不是/usr/local/bin/中的GCC版本 检查路径,查看/usr/local/bin是否位于/usr/bin之前。如果是,只需确保/usr/b

我使用的系统在/usr/local/bin/GCC中有GCC4.5(实验版),这对于一些R包来说是有问题的。我想改为在/usr/bin/GCC中使用系统GCC

我曾尝试在Bash配置文件(.bashrc、.Bash_profile等)以及命令行中设置CC和CXX,但尽管Bash能够识别更改,R却无法识别


如何让R使用/usr/bin中的GCC版本而不是/usr/local/bin/中的GCC版本

检查路径,查看/usr/local/bin是否位于/usr/bin之前。如果是,只需确保/usr/bin排在第一位:

PATH=/usr/bin:${PATH}

(如果/usr/bin重复出现两次也没关系)。

这没有很好的文档记录(例如,我现在无法在'R Extension'或'R Admin'中找到它),但Brian Ripley在列表中多次提到它

基本上,在R编译时,设置被注册并存储在
$R\u HOME/etc/Makeconf
中。一种可能是直接编辑该文件,但您可能没有root权限或不想影响所有其他用户。因此,更好的做法可能是创造

~/.R/Makevars
有条目

CC=gcc-4.4
CXX=g++-4.4
加上您想要设置的选项标记等。这将影响
R CMD INSTALL
R CMD check
或。。。你跑了


$R\u HOME/etc/
中的其他文件也可以从
~/.R/

本地重写。我遇到了一个非常类似的问题

对我来说,有效的方法是定义一个项目目录(rstudio可以为您这样做),然后添加一个
.Renviron
文件,该文件修改路径和LD_LIBRARY_路径,以将目录包含在新的gcc中。 例如,在您的情况下,
.Renviron
将类似于:

LD_LIBRARY\u PATH=/usr/local/bin/gcc/lib:/usr/local/bin/gcc/lib64:/usr/local/bin/gcc/libexec:
其他路径


PATH=/usr/local/bin/gcc/bin:/usr/local/bin:
其他路径

查看
configure.args
部分
?install.packages
并将其与例如r源代码树上的
/configure--help
进行比较

您还可以从bash,
CC=clang R CMD INSTALL/path/to/package/source


HTH

不起作用:导出路径=/usr/bin:${PATH}R CMD安装。。。正在检查gcc/usr/local/bin/gcc-std=gnu99在我的配置中,某些包需要sudo,因此在这些情况下有必要修改Makeconf。你的解决方案有效$R_HOME是/usr/lib64/R/for centos6对于R包(largeViz)安装,即使在添加了CXX变量之后,我们也遇到了问题。除此之外,我们还必须在Makevars文件中配置CXX11变量。像这样的CXX11=g++7您可能需要先
mkdir~/.R
?目录必须存在才能在其中写入文件。谢谢,这解决了我的问题,我使用
CXX14=/opt/rh/devtoolset-8/root/usr/bin/g++
安装
rstan
软件包。