如何加快Ubuntu应用程序的编译速度(make,cmake,gcc)
我正在编译一些程序,我有4个核心。 有没有办法告诉make
, cmake
或gcc
使用所有内核或其他东西进行编译?
如果包支持它,您可以使用-j
标志来允许并行作业运行,例如:
make -j8
有关此标志的更多详细信息,请参阅Stackoverflow问题为什么make -j在传递的数字大于可用内核数时会更好? 。
分布式编译
如果您有多台机器,请给出distcc 。 在涉及的机器上, sudo apt-get install distcc
。 假设你的构建机器是192.168.1.1:
-
在辅助机器上,运行:
sudo distccd --log-file=/tmp/distccd.log --daemon -a 192.168.1.1
-
在构建计算机上,在运行
configure
或cmake
之前,必须指定要用于构建过程的主机。 (可选)指定斜杠后的并发作业数(默认为4):export DISTCC_HOSTS='localhost/4 192.168.1.2/8 192.168.1.3/8'
使编译器使用distcc:
export PATH="/usr/lib/distcc:$PATH"
现在
configure
或cmake
应用程序并构建:make -j$(distcc -j)
请注意,如果您在PATH中放置了两次
/usr/lib/distcc
,它将会失败。 一定要在PATH
设置一次/usr/lib/distcc
。
有关详细信息,请参阅distcc(1)和distccd(1)的手册页。