Note: Rcpp headers appear to now work correctly on Catalina. This step is no longer necessary and won’t work on macOS 10.15+, since the macOS_SDK_headers_for_macOS_10.14.pkg
installer (see below) is no longer bundled with Xcode CLI tools.
Note: If you install a macOS system update, you’ll likely need to re-run this. Refer to this comment for additional details.
For example, say we want to build the data.table and rlang packages from source.
Update old packages: 'data.table', 'rlang'
Update all/some/none? [a/s/n]: a
There are binary versions available but the source versions are later:
binary source needs_compilation
data.table 1.12.0 1.12.2 TRUE
rlang 0.3.1 0.3.4 TRUE
If your Rcpp configuration is messed up, you’ll see error messages like this:
In file included from ./data.table.h:1:
/Library/Frameworks/R.framework/Resources/include/R.h:55:11: fatal error: 'stdlib.h' file
not found
# include <stdlib.h> /* Not used by R itself, but widely assumed in packages */
Here’s another common error indicating Rcpp headers aren’t configured correctly:
fatal error: 'string.h' file not found
#include <string.h>
We need to hard install the headers back to the default location of previous macOS builds.
sudo installer \
-pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg \
-target /
You should see this return in the terminal:
installer: Package name is macOS_SDK_headers_for_macOS_10.14
installer: Installing at base path /
installer: The install was successful.
If you see this error, remove the Xcode command line tools, reinstall, and then try the above command again.
installer: The install failed (The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance.)
sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install
sudo xcodebuild -license accept