“CXX11 is not defined” problem in MRO 3.4

(Actually I vaguely remember encountering the same problem in MRO 3.3, and solved it using similar method. Unfortunately I didn’t write it down.)

Note: MRO means Microsoft R Open (previously Revolution R)

Microsoft R Open

Recently I tried to set up the R development environment on a fresh Linux system, every thing went well until I hit this error installing xgboost:

Package installation error: “C++11 standard requested but CXX11 is not defined”

After some Googling I found this Github issue. It appears to be a MRO-specific problem, and mjmg provided a working solution.

The gist is, replacing every “CXX1X” with “CXX11” in R compiler configuration files (System wide: ${R_HOME}/etc/Makeconf Per-user: ~/.R/Makevars) and fill in some values:

CXX11 = g++
CXX11FLAGS = -O2 -g $(LTO)
CXX11STD = -std=c++11

That’s it!