为了提高gcc的编译速度,建议安装ccache来缓存提高性能。
安装ccache:
emerge -av ccache
查看并配置当前CHOST:
emerge --info | grep CHOST ccache-config --install-links YOUR-CHOST-HERE;
为了编译时默认启用ccache功能,在make.conf文件中添加:
FEATURES="parallel-fetch ccache"
系统默认缓存目录在/var/tmp/ccache,编译时也将缓存文件放在该目录。而用户的缓存目录在/root/.ccache,虽然root用户从来不会使用这个目录,这会导致混乱。查看缓存命中率等统计信息时,必须加上CCACHE_DIR参数。
CCACHE_DIR="/var/tmp/ccache" ccache -s
为了避免混乱,最好:
echo "CCACHE_DIR=\"/var/tmp/ccache\"" >> /etc/env.d/99local env-update && source /etc/profile
distcc可以让网络中的多台机器一起编译,这样可以大大提高编译速度。
除非你想用图形工具来监控任务,否则不要在USE中包含'gnome'或者'gtk'。不安装图形工具,只安装软件包。
USE='-*' emerge distcc echo sys-devel/distcc -* >> /etc/portage/package.use
编辑/etc/conf.d/distccd文件,允许局域网内计算机连接:
DISTCCD_OPTS="${DISTCCD_OPTS} --allow 10.0.0.0/8"
启动服务端,并设置为开机时默认启动:
/etc/init.d/distccd start rc-update add distccd default
初始化环境变量(–install),并设置编译时同时连接到那些主机一起编译,通常列表中不需要包括本机(localhost):
distcc-config --install distcc-config --set-hosts "u01 10.62.0.200"
distccmon-text工具可以查看是否正常工作,没隔5秒刷新一下列表:
DISTCC_DIR=/var/tmp/portage/.distcc distccmon-text 5
最好将DISTCC_DIR路径写入系统环境变量:
echo "DISTCC_DIR=\"/var/tmp/portage/.distcc\"" >> /etc/env.d/99local env-update && source /etc/profile
配置Portage使用distcc
修改make.conf编译参数,加入distcc支持,distcc应该写在ccache后面。还要编辑MAKEOPTS来包含-jN(设置为网络中处理器的总数加1)。
FEATURES="parallel-fetch ccache distcc" MAKEOPTS="-j5"
配置Automake使用distcc
这比设置Portage更简单,你所要做的就是更新你的PATH环境变量,在gcc(/usr/bin之前包含/usr/lib/distcc/bin。然而,有一点警告。如果你使用ccache,你要把distcc放在ccache部分之后。像这样:
export PATH=”/usr/lib/ccache/bin:/usr/lib/distcc/bin:${PATH}”
每次执行emerge system更新整个系统后,一定要重新执行emerge distcc。
emerge gcc-3.3.6-r1出错。。。
如果不是一定要用gcc3来编译东西,而只是用c++库的话,可以装
emerge sys-libs/libstdc++-v3
Comments
There are currently no comments
New Comment