【问题标题】:How to enable ccache on Linux如何在 Linux 上启用 ccache
【发布时间】:2012-12-18 09:05:39
【问题描述】:

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

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

谁能给我更多关于启用ccache的信息?

【问题讨论】:

  • 很难启用你不使用的东西。你想如何使用它是一个关键。对于 make 或兼容,如果您的 makefile 不是太复杂,则 export CC=ccache 应该可以工作。

标签: linux gcc gnu ccache


【解决方案1】:

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

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

A) 使用以下命令压缩文件:

 $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 

【讨论】:

    【解决方案2】:

    至少有两种方法:

    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

    ii) 对于其他用途,我已经部署了在 /usr/bin 之前检查 /usr/local/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$ 
    

    【讨论】:

      【解决方案3】:

      ccache manual有一个叫Run modes的部分描述了官方激活ccache的方法,所以我建议阅读手册。

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

      【讨论】:

        【解决方案4】:

        如果$HOME/bin//usr/bin/ 之前的$PATH 中列出,则另一种可能性(而不是Keltar 评论的export CC=ccache)是创建一个符号链接

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

        那么gcc 中的每个execvp(3) 都会找到该符号链接

        【讨论】:

          猜你喜欢
          • 2020-08-27
          • 2010-12-21
          • 1970-01-01
          • 1970-01-01
          • 2021-09-08
          • 1970-01-01
          • 1970-01-01
          • 2020-09-30
          • 2012-07-20
          相关资源
          最近更新 更多