Use ccache with CMake for faster compilation
C and C++ compilers aren’t the fastest pieces of software out there and there’s no lack of programmer jokes based on tedium of waiting for their work to complete.
There are ways to fix the pain though - one of them is ccache. CCache improves compilation times by caching previously built object files in private cache and reusing them when you’re recompiling same objects with same parameters. Obviously it will not help if you’re compiling the code for the first time and it also won’t help if you often change compilation flags. Most C/C++ development however involves recompiling same object files with the same parameters and ccache helps alot.
For illustration, here’s the comparison of first and subsequent compilation times of a largish C++ project:
CCache is available in repositories on pretty much all distributions. On OS X use homebrew:
and on Debian-based distros use apt:
After ccache is installed, you need to tell CMake to use it as a wrapper for the compiler. Add these lines to your
cmake and next
make should use ccache for wrapper.
CCache can even be used on Android NDK - you just need to export
NDK_CCACHE environment variable with path to ccache binary.
ndk-build script will automatically use it. E.g.
(Note that on Debian/Ubuntu the path will probably be
To see if ccache is really working, you can use
ccache -s command, which will display ccache statistics:
On second and all subsequent compilations the “cache hit” values should increase and thus show that ccache is working.