ฉันกำลังรวบรวมบางโปรแกรมที่นี่และฉันมี 4 คอร์ มีวิธีที่จะบอกmake
, cmake
หรือgcc
การรวบรวมโดยใช้แกนทั้งหมดหรือบางสิ่งบางอย่างที่ส่งผลกระทบ?
ฉันกำลังรวบรวมบางโปรแกรมที่นี่และฉันมี 4 คอร์ มีวิธีที่จะบอกmake
, cmake
หรือgcc
การรวบรวมโดยใช้แกนทั้งหมดหรือบางสิ่งบางอย่างที่ส่งผลกระทบ?
คำตอบ:
หากแพ็คเกจรองรับคุณสามารถใช้-j
แฟล็กเพื่ออนุญาตให้งานแบบขนานรันเช่น:
make -j8
รายละเอียดเพิ่มเติมเกี่ยวกับการตั้งค่าสถานะนี้สามารถพบได้ในคำถาม Stackoverflow เหตุใดจึงทำให้ -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)
โปรดทราบว่าถ้าคุณใส่/usr/lib/distcc
PATH สองครั้งมันจะล้มเหลว ให้แน่ใจว่าการตั้งเพียงครั้งเดียวในของคุณ/usr/lib/distcc
PATH
สำหรับรายละเอียดเพิ่มเติมโปรดดูที่หน้าคู่มือสำหรับdistcc (1)และdistccd (1)
distccd --user nobody
หากคุณใช้มันเป็นรากและต้องการที่จะให้ผู้ใช้สวิทช์ใช้ มิฉะนั้นจะทำงานภายใต้ผู้ใช้ที่เรียกใช้งาน