|
无意间发现了ccache这么个好东西,或许大家都知道,就我火星了。
安装使用都很简单,对同一软件的同一或更新版本进行第二次编译速度是成倍(5-10倍)增长的。所以,像一些几乎每天更新的软件如git, svn, cvs, bzr等等效果显著,当然如果你想对同一个版本的软件修改编译参数也依然能享受到速度的乐趣。总之,有利无害,能够确保编译效果和make clean之后一致。
wiki上有相关介绍,只是过时了,其实改一处地方即可。见原文: http://wiki.archlinux.org/index. ... g_with_ccache_HOWTO
主页:http://ccache.samba.org
介绍:ccache is a compiler cache. It acts as a caching pre-processor to C/C++ compilers, using the -E compiler switch and a hash to detect when a compilation can be satisfied from cache. This often results in a 5 to 10 times speedup in common compilations.
The idea came from Erik Thiele wrote the original compilercache program as a bourne shell script. ccache is a re-implementation of Erik's idea in C with more features and better performance.
安装:
sudo pacman -S ccache。
设置:修改/etc/makepkg.conf
找到ccache,把前面的!去掉保存即可,改成 BUILDENV=(fakeroot !distcc color ccache !xdelta)
注意:ccache会在~/.ccache保存缓存的编译文件,可以设置缓存大小,文件数目等。具体参见man ccache。
顺便说一下,makepkg.conf里还有不少东西可以修改,参见:http://wiki.archlinux.org/index.php/Makepkg.conf
cflags就不再多说了,推荐用 CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer"
多核的可以打开MAKEFLAGS="-j2"
分布式编译可以打开distcc
想要man以外的doc,可以去掉OPTIONS=(strip !docs libtool emptydirs)中 !doc 前的!
PKGDEST可以设置生成包的路径,尤其是yaourt喜欢把aur的生成的包都放在/tmp,导致如果你选择不安装就会被删掉,浪费时间。
SRCDEST可设置下载的source的保存地址。
PACKAGER设置你的名字,以后包的信息中就会有了。
还有一些参见wiki。 |
|