【问题标题】:Building R Packages using Alternate GCC使用备用 GCC 构建 R 包
【发布时间】:2009-10-24 04:44:15
【问题描述】:

我使用的系统在 /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/ 中的版本?

【问题讨论】:

    标签: bash gcc r


    【解决方案1】:

    这并没有很好的记录(例如,我现在无法在“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/ 本地覆盖。

    【讨论】:

    • 根据我的配置,某些包需要sudo,所以在这些情况下需要修改Makeconf。您的解决方案有效!
    • $R_HOME 对于 CentOS6 是 /usr/lib64/R/
    • 对于 R 包 (largeViz) 安装,即使在添加 CXX 变量后我们也遇到了问题。除此之外,我们还必须在 Makevars 文件中配置 CXX11 变量。像这样 CXX11=g++7
    • 也许您首先需要mkdir ~/.R?该目录需要存在才能在其中写入文件。
    • 谢谢,这解决了我的问题,我用CXX14=/opt/rh/devtoolset-8/root/usr/bin/g++安装rstan包。
    【解决方案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:其他路径

    【讨论】:

      【解决方案3】:

      检查您的路径以查看 /usr/local/bin 是否位于 /usr/bin 之前。如果是这样,请确保 /usr/bin 先出现:

      PATH=/usr/bin:${PATH}
      

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

      【讨论】:

      • 不起作用:export PATH=/usr/bin:${PATH} R CMD INSTALL... 检查 gcc... /usr/local/bin/gcc -std=gnu99
      【解决方案4】:

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

      您也可以通过 bash 发送 CC=clang R CMD INSTALL /path/to/package/source

      HTH

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-14
        • 2016-03-07
        相关资源
        最近更新 更多