使用备用GCC构建R包

时间:2009-10-24 04:44:15

标签: bash gcc r

我使用的系统在/ usr / local / bin / gcc中有GCC 4.5(实验性),已经证明对某些R包有问题。我想在/ usr / bin / gcc中使用系统GCC。

我尝试在Bash配置文件(.bashrc,.bash_profile等)以及命令行中设置CC和CXX,但是虽然Bash识别出更改,但R没有。

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

4 个答案:

答案 0 :(得分:33)

这不是很好的记录(例如我现在无法在'R Extension'或'R Admin'中找到它),但Brian Ripley在列表中提到了几次。

基本上,在R编译时,设置被注册并存储在$R_HOME/etc/Makeconf中。一种可能性是直接编辑该文件,但您可能没有root权限,或者可能不想影响所有其他用户。所以最好是创建

~/.R/Makevars

带条目

CC=gcc-4.4
CXX=g++-4.4

加上您想要设置的任何验证标志等。这将影响您运行的R CMD INSTALLR CMD check或......的所有后续使用。

$R_HOME/etc/中的其他文件同样可以从~/.R/本地覆盖。

答案 1 :(得分:2)

我有一个非常类似的问题。

对我来说有用的是定义一个项目目录(rstudio可以为你做这个),然后添加一个修改PATH和LD_LIBRARY_PATH的.Renviron文件,以包含带有新gcc的目录。 例如,在您的情况下,.Renviron将类似于:

LD_LIBRARY_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: 其他路径

答案 2 :(得分:0)

检查您的路径,查看/ usr / local / bin是否在/ usr / bin之前。如果是这样,只需确保/ usr / bin是第一个:

PATH=/usr/bin:${PATH}

(如果/ usr / bin重复出现两次就可以了。)

答案 3 :(得分:0)

查看configure.args的{​​{1}}部分,并将其与?install.packages进行比较,例如r源代码树。

您还可以通过bash ./configure --help

HTH