10

ccache关于在 GNU/Linux上启用的文档很少。这是来自launchpad.net的回复:

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

有人可以给我更多关于启用的信息ccache吗?

4

4 回答 4

7

下载最新版本的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 
于 2016-01-06T15:53:31.153 回答
5

至少有两种方法:

i) 覆盖 Makefile 中的CC,CXX​​ , ... 标志。在 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.

/usr/local/bin/ii) 对于其他用途,我已经部署了之前检查过的事实/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$ 
于 2013-01-27T17:06:24.577 回答
4

ccache 手册有一节叫做运行模式,描述了激活 ccache 的官方方法,所以我建议阅读手册。

此外,正如您已经指出的,Linux 发行版通常会设置一个 /usr/lib/ccache 目录,该目录旨在添加到 PATH 之前。

于 2013-01-27T16:54:36.850 回答
2

Another possibility (instead of export CC=ccache commented by Keltar), if $HOME/bin/ is listed in your $PATH before /usr/bin/, would be to make a symlink

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

Then every execvp(3) of gcc would find that symlink

于 2012-12-19T06:36:27.197 回答