如何加速 Ubuntu 应用程序的编译(make、cmake、gcc)

如何加速 Ubuntu 应用程序的编译(make、cmake、gcc)

我在这里编译一些程序,我有 4 个核心。有没有办法告诉make或使用所有核心进行编译cmakegcc影响什么?

答案1

如果包支持,您可以使用标志-j来允许并行作业运行,例如:

make -j8

有关此标志的更多详细信息,请参阅 Stackoverflow 问题为什么当传递的数字大于可用核心数时,make -j 的性能会更好?

分布式编译

如果你有多台机器,分布式开始吧。在所涉及的机器上,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"
    

    现在configurecmake应用程序并构建:

    make -j$(distcc -j)
    

    /usr/lib/distcc请注意,如果您在 PATH 中输入了两次,则会失败。请确保/usr/lib/distcc在您的 中只设置一次PATH

有关详细信息,请参阅distcc(1)distccd(1)

相关内容