如何在Linux上启用ccache

时间:2012-12-18 09:05:40

标签: linux gcc gnu ccache

关于在GNU / Linux上启用ccache的文档非常少。以下是launchpad.net的回复:

  

目前,我认为启用ccache的最佳方法是添加   “/ usr / lib / ccache”到你的路径前面。如果要启用它   默认情况下,为所有用户更改PATH变量   的/ etc /环境。

有人可以向我提供有关启用ccache的更多信息吗?

4 个答案:

答案 0 :(得分:5)

至少有两种方法:

i)覆盖Makefile中的CCCXX,...标志。在R框架内,读取系统和可选的用户配置文件,我只需设置

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

还允许我在gcc版本之间来回切换。现在所有汇编涉及R使用ccache

ii)对于其他用途,我已经部署了在/usr/local/bin/之前检查/usr/bin的事实。所以可以做到

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# 

现在通过gcc调用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$ 

答案 1 :(得分:3)

ccache manual有一个名为Run modes的部分,其中介绍了激活ccache的官方方法,因此我建议您阅读本手册。

另外,正如您已经注意到的,Linux发行版通常会设置一个/ usr / lib / ccache目录,该目录设计为PATH的前缀。

答案 2 :(得分:3)

下载ccache的最新版本以获得更好的性能。

下载后,请按照以下步骤操作:

A)使用以下命令对文件进行Tar:

 $tar -xvf ccache-3.2.4.tar.bz2

 Note : I'm using ccache 3.2.4 Version.You can download the latest one.

B)进入ccache-3.2.4文件夹并运行以下命令:

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

C)转到.bashrc并插入以下内容:

 export CCACHE_DIR=/home/user_name/.ccache
 export CCACHE_TEMPDIR=/home/user_name/.ccache

 Note : Fill user_name with your User Name

D)保存您的Bashrc并将其获取

 $ source ~/.bashrc

E)要检查ccache是​​否正常输入:

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

F)检查ccache是​​否正常工作:

 ccache -s : To check ccache statistics 

答案 3 :(得分:1)

另一种可能性(而不是Keltar评论的export CC=ccache),如果$HOME/bin/ $PATH列在/usr/bin/ ln -s /usr/bin/ccache $HOME/bin/gcc 之前,那么就是制作符号链接

gcc

然后{{1}}的每个execvp(3)都会找到符号链接