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