调试内核模块时候需要编译内核,简单加个打印都需要40分钟左右,这种速度令人无法容忍,一定会有方法的。Google了一下,有人给出了ccache方案,ccache也是采用gcc编译,不过它保存了gcc的输出信息,下一次编译的时候会比较文件时间戳,有更新才会编译,实际测试使用这种方式编译内核,修改.c文件重新编译从原来的40分钟到现在只需要1分钟,效果还是非常强大的。

配置ccache:

1. 安装ccache

    sudo apt-get install ccache

2. 修改ccache环境变量

    vim ~/.bashrc

    添加如下语句:
    # ccache
    #user是用户目录,这个目录是用来保存编译信息,可以使用其它目录。
    export CCACHE_DIR="/home/user/.ccache" 
    export CC="ccache gcc"
    export CXX="ccache g++"
    export PATH="/usr/lib/ccache:$PATH"

3. 更新环境变量使之立即生效
    source ~/.bashrc

3. 修改ccache使用的缓存大小,根据你自己的需要配置
    $ccache -M 6G

4. 配置完成,可以重新编译代码试试

参考文档:

1. Using ccache to speed up kernel compilation 

 http://linuxdeveloper.blogspot.com/2012/05/using-ccache-to-speed-up-kernel.html 

Logo

更多推荐