How to enable ccache on Linux

There is very little documentation on enabling ccache on GNU / Linux. Here is the answer from launchpad.net :

At the moment, I believe that the best way to enable ccache is to add "/ usr / lib / ccache" at the beginning of your path. If you want to enable it for all users by default, change the PATH variable in / Etc./environment.

Can someone give me more information on enabling ccache ?

+7
source share
4 answers

There are at least two methods:

i) Override the CC , CXX , ... flags in the Makefile. Within the R-structure, the system and optional user configuration file is read, and I just install

 VER=4.7 CC=ccache gcc-$(VER) CXX=ccache g++-$(VER) SHLIB_CXXLD=g++-$(VER) FC=ccache gfortran F77=ccache gfortran 

which also allows me to switch between gcc versions. Now all compilations involving R use ccache .

ii) For other purposes, I used the fact that /usr/local/bin/ checked before /usr/bin . So you can do

 root@max :/usr/local/bin# ls -l gcc lrwxrwxrwx 1 root root 15 Jan 27 11:04 gcc -> /usr/bin/ccache root@max :/usr/local/bin# ./gcc --version gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2 Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. root@max :/usr/local/bin# 

and now gcc is called through ccache :

 edd@max :/tmp$ cp -vax ~/src/progs/C/benfordsLaw.c . `/home/edd/src/progs/C/benfordsLaw.c' -> `./benfordsLaw.c' edd@max :/tmp$ time /usr/local/bin/gcc -c benfordsLaw.c real 0m0.292s user 0m0.052s sys 0m0.012s edd@max :/tmp$ time /usr/local/bin/gcc -c benfordsLaw.c real 0m0.026s user 0m0.004s sys 0m0.000s edd@max :/tmp$ 
+5
source

The ccache manual contains a section on Launch Modes that describes the official ways to activate ccache, so I suggest reading the manual.

In addition, as you have already noted, Linux distributions often configure the / usr / lib / ccache directory, which is intended to be added to PATH.

+3
source

Another possibility (instead of export CC=ccache , commented by Keltar) if $HOME/bin/ is specified in $PATH before /usr/bin/ , would make a symbolic link

  ln -s /usr/bin/ccache $HOME/bin/gcc 

Then each execvp (3) from gcc would find that symlink

+1
source

Download the latest version of ccache for better performance.

After downloading, do the following:

A) Reset the file using the following command:

  $tar -xvf ccache-3.2.4.tar.bz2 Note : I'm using ccache 3.2.4 Version.You can download the latest one. 

B) Go to the ccache-3.2.4 folder and run the following commands:

  $./configure $./make $ sudo make install 

C) Go to your .bashrc and paste the following:

  export CCACHE_DIR=/home/user_name/.ccache export CCACHE_TEMPDIR=/home/user_name/.ccache Note : Fill user_name with your User Name 

D) Save your Bashrc and submit it

  $ source ~/.bashrc 

E) To verify that ccache is working or not, enter:

  ccache -M 10G : To Set the ccache Size to 10GB 

F) To verify that ccache is working or not, enter:

  ccache -s : To check ccache statistics 
+1
source

All Articles