R 包安装指定 GCC 和 G++ 并开启 C++11 支持

如果你的 R 是使用比较低版本的 GCC(如 Red Hat 6.5 + GCC/G++ 4.4.7),但安装的 R 包需要开启 C++11 支持,或者需要更高版本的 GCC 和 G++,可以参考一下这个方法。

首先,在 home 目录创建一个 ~/.R/Makevars 文件。

mkdir ~/.R
vi ~/.R/Makevars

然后,在 Makevars 文件中加入以下内容。

CXX11 = /opt/rh/devtoolset-7/root/usr/bin/g++ -std=c++11 -fPIC
CXX14 = /opt/rh/devtoolset-7/root/usr/bin/g++
CXX14FLAGS = -g -O2 $(LTO)
CXX14PICFLAGS = -fpic
CXX14STD = -std=gnu++14

最后,重新打开 R,执行对应包安装。

options("repos"=c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
install.packages("gridtext")

install-packages-gridtext

参考资料:

  1. ERROR: compilation failed for package ‘gridtext’ - wilkelab/gridtext#7