นี่คือคำสั่ง ccontrol ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
ccontrol - wrapper เพื่อควบคุม distcc, ccache และอื่น ๆ
เรื่องย่อ
gcc ...
cc ...
C ++ ...
ทำ ...
ld ...
ควบคุม [--ส่วน= ] ...
ควบคุม [--ส่วน= ]
DESCRIPTION
พื้นที่ ควบคุม(1) โปรแกรมเข้าควบคุมบทบาทของคอมไพเลอร์และลิงเกอร์ และอ่านว่า a
ไฟล์การกำหนดค่าเพื่อตัดสินใจว่าจะทำอย่างไรก่อนที่จะเรียกใช้ มีประโยชน์อย่างยิ่ง
สำหรับการควบคุมคำสั่งและตัวเลือกแบบรวมศูนย์ เช่น การเปิดใช้งาน discc(1) และ
แคช(1)
เมื่อ ควบคุม(1) ถูกเรียกใช้ภายใต้ชื่อของตัวเองโดยไม่มีข้อโต้แย้ง มันพิมพ์
การตั้งค่าที่ใช้ในไดเรกทอรีนี้ (เว้นแต่ --ส่วน ระบุไว้)
เวอร์ชันต่างๆ ได้รับการตั้งชื่อตามบุคคลสุดท้ายที่รายงานจุดบกพร่อง
OPTIONS
ปกติ ควบคุม(1) ถูกเรียกใช้เป็นลิงก์สัญลักษณ์ไปยัง cc, make ฯลฯ เพื่อให้สามารถระบุได้
สิ่งที่ถูกเรียกโดยการตรวจสอบชื่อของตัวเอง นอกจากนี้ยังสามารถเรียกใช้ภายใต้ตัวมันเอง
ชื่อ ซึ่งในกรณีนี้สามารถระบุอาร์กิวเมนต์เฉพาะ ccontrol ได้ ไม่ใช่ตัวเลือกแรก
อาร์กิวเมนต์จะถูกใช้เพื่อระบุการร้องขอเช่น "ซีคอนโทรล จีซีซี ...".
รองรับตัวเลือกต่อไปนี้เมื่อเรียกใช้เป็น ควบคุม:
--ส่วน=
นี่ถือเป็น "ไดเร็กทอรีปัจจุบัน" เพื่อวัตถุประสงค์ในการประเมิน
ไฟล์การกำหนดค่า เนื่องจากไดเรกทอรีจริงทั้งหมดต้องขึ้นต้นด้วย "/" โดยใช้อาร์กิวเมนต์
ซึ่งไม่เป็นวิธีที่ดีในการเอาชนะการกำหนดค่าสำหรับสิ่งนี้โดยเฉพาะ
วิงวอน
การกำหนดค่า ไฟล์
ไฟล์กำหนดค่าของ ccontrol คือ $HOME/.ccontrol/config. หากไม่สามารถอ่านได้ (และ
เป็นลายลักษณ์อักษร) การรวบรวมของคุณจะล้มเหลวทั้งหมด เป็นธรรมดาที่จะมีหลายอย่างที่แตกต่างกัน
ไฟล์คอนฟิกูเรชันในไดเร็กทอรีนี้ และทำให้ดีฟอลต์เป็นลิงก์สัญลักษณ์
ซิงค์
ไฟล์การกำหนดค่าประกอบด้วยส่วนต่างๆ นำโดยส่วนหัว "[เส้นทาง]" และตามด้วย
เยื้องรายการ "name = value" ส่วนแรกมักจะมีป้ายกำกับ "[*]" เพื่อตั้งค่า
ค่าเริ่มต้น อย่างน้อยที่สุด คุณต้องตั้งค่า "cc", "c++", "make" และ "ld"
ccontrol จะอ่านทุกส่วนที่ตรงกับไดเร็กทอรีปัจจุบัน ดังนั้นคุณจึงสามารถแทนที่
ค่าบนพื้นฐานต่อไดเร็กทอรี ส่วนหัว "[เส้นทาง]" ของแต่ละส่วนเป็นแบบเชลล์
สัญลักษณ์แทน (ดู glob(7)) ซึ่งระบุไดเร็กทอรีหรือไดเร็กทอรีที่ใช้กับ โดยปกติ
ซึ่งจะลงท้ายด้วย "*" เพื่อรวมไดเรกทอรีย่อยทั้งหมด
เส้นทางทั้งหมดที่ขึ้นต้นด้วย "~" จะสัมพันธ์กับโฮมไดเร็กทอรีของผู้ใช้ เส้นทางอาจจะ
ระบุเป็นไดเร็กทอรี ซึ่ง ccontrol จะเพิ่มชื่อโปรแกรมต่อท้าย
ไดเรกทอรี
มีการตั้งค่าต่อไปนี้:
cc
ติดตามโดย = ระบุเส้นทางของคอมไพเลอร์ที่จะเรียกใช้เมื่อ ccontrol is
เรียกเป็น "cc" หรือ "gcc" ccontrol จะล้มเหลวในการคอมไพล์โปรแกรม C หากไม่ได้ตั้งค่าไว้
C ++
ติดตามโดย = ระบุเส้นทางของคอมไพเลอร์ที่จะเรียกใช้เมื่อ ccontrol is
เรียกเป็น "c" หรือ "g" ccontrol จะล้มเหลวในการรวบรวมโปรแกรม C ++ หากไม่ได้ตั้งค่าไว้
ld
ติดตามโดย = ระบุเส้นทางของตัวเชื่อมโยงที่จะเรียกใช้เมื่อ ccontrol ถูกเรียกใช้
เป็น "แอล" ccontrol จะไม่สามารถเชื่อมโยงโปรแกรมได้หากไม่ได้ตั้งค่าไว้
ทำ
ติดตามโดย = ระบุเส้นทางของไบนารีที่จะเรียกใช้เมื่อ ccontrol ถูกเรียกใช้
อย่างที่ "ทำ" ccontrol จะไม่สามารถทำได้หากไม่ได้ตั้งค่าไว้
แคช
ติดตามโดย = ระบุเส้นทางของ "ccache" และระบุว่าจะใช้ ccache
ที่เหมาะสม. ถ้าตามด้วย ปิดการใช้งานหรือไม่ได้ตั้งค่า ccache จะไม่ถูกนำมาใช้
discc
ติดตามโดย = ระบุเส้นทางของ "distcc" และระบุว่าจะใช้ distcc
ที่เหมาะสม. ถ้าตามด้วย ปิดการใช้งานหรือไม่ได้ตั้งค่า หรือ distcc-hosts ไม่ถูกตั้งค่า
distcc จะไม่ถูกนำมาใช้
distcc-โฮสต์
ติดตามโดย = ระบุเซิร์ฟเวอร์ distcc ที่จะใช้ ตามสภาพแวดล้อม DISTCC_HOSTS
ตัวแปรใน discc(1). ติดตามโดย ปิดการใช้งาน ปิดการใช้งาน distcc.
disc++-โฮสต์
เหมือนกับ distcc-hosts แต่ใช้กับ Ccompilations เท่านั้น หากไม่ได้ตั้งค่า distcc-hosts
ถูกนำมาใช้. คุณสามารถปิดใช้งาน distcc สำหรับการรวบรวม C ได้โดยการตั้งค่า "distc++-hosts
ปิดการใช้งาน".
ซีพียู
ติดตามโดย = และ CPU จำนวนหนึ่ง ตั้งค่าเป็นจำนวน CPU ที่คุณมี (ค่าเริ่มต้นคือ
"1") ควบคุม ใช้สิ่งนี้เพื่อปรับระดับความขนาน
ไม่ขนานกัน
ติดตามโดย = และรายการไวด์การ์ดที่คั่นด้วยช่องว่าง ระงับ make for . แบบขนาน
ทำให้เป้าหมายตรงกับหนึ่งในนั้น ตัวเลือกนี้จำเป็นเพราะ ควบคุม(1)
มักจะบังคับ ทำ(1) กระทำการทุกอย่างควบคู่กันไป แต่สิ่งนี้อาจทำให้สับสนได้
เมื่อเกิดข้อผิดพลาด และทำลาย makefile ที่เขียนไม่ดี ติดตามโดย ปิดการใช้งาน,
เปิดใช้งาน Parallel Make สำหรับเป้าหมายทั้งหมด: สิ่งนี้มีประโยชน์ในการเปิดใช้งาน Parallel Make อีกครั้งใน a
ไดเร็กทอรีย่อย
ดี
ติดตามโดย = และระดับความสำคัญตั้งแต่ -19 ถึง 20 ทำให้ ccontrol พยายามตั้งค่าของมัน
ให้ความสำคัญกับค่านี้ ค่าเริ่มต้นคือ 10
ประกอบด้วย
ติดตามโดย = ระบุไฟล์ที่จะรวมไว้ที่จุดปัจจุบัน ได้ผลแน่นอน
ราวกับว่าเนื้อหาของไฟล์ที่รวมอยู่นั้นถูกแทรกอย่างแท้จริง สามารถใช้ได้ที่ไฟล์
ระดับที่จะรวมส่วนต่างๆ สามารถใช้ภายในส่วนเพื่อรวมส่วน
เศษ
เพิ่มยี่ห้อ
ติดตามโดย = ระบุอาร์กิวเมนต์ที่จะเพิ่มในแต่ละการร้องขอของ ทำ. นี้สามารถ
ระบุหลายครั้งเพื่อเพิ่มหลายอาร์กิวเมนต์ ติดตามโดย ปิดการใช้งาน ลบใดๆ
อาร์กิวเมนต์ที่ระบุก่อนหน้านี้
เพิ่ม env
ติดตามโดย = ระบุตัวแปรสภาพแวดล้อมที่จะตั้งค่า เช่น "add env =
CCACHE_DIR=/ Tmp" สามารถระบุได้หลายครั้งเพื่อตั้งค่าหลายสภาพแวดล้อม
ตัวแปร ติดตามโดย ปิดการใช้งาน ลบอาร์กิวเมนต์ที่ระบุก่อนหน้านี้
ละเอียด
โดยตัวมันเองแสดงว่า ควบคุม(1) คือการปล่อยอึออกมามากมายจนเกิดข้อผิดพลาดมาตรฐาน
เกี่ยวกับสิ่งที่มันทำกับบรรทัดคำสั่งที่ไร้เดียงสาของคุณ
ล็อคไฟล์
ระบุไฟล์ล็อคเฉพาะที่จะใช้
ตัวอย่าง
นี่คือไฟล์การกำหนดค่าขั้นต่ำ:
[*]
ซีซี = /usr/bin/gcc
c++ = /usr/bin/g++
เดิม = /usr/bin/ld
ทำ = /usr/bin/ทำ
หากคุณมีหลายตำแหน่ง (เช่น แล็ปท็อป) เป็นเรื่องปกติที่จะมีไฟล์ "ทั่วโลก"
ซึ่งรวมอยู่ในไฟล์คอนฟิกูเรชันทุกไฟล์ เช่น:
# ไฟล์คอนฟิกสำหรับเมื่อฉันอยู่ที่ทำงาน โฮสต์ distcc มากมาย!
รวม = ~/.ccontrol/global
[*]
distcc-hosts = จับ swarm1 swarm3 swarm4 swarm5 fandango2 mingo
distc++-hosts = จับ mingo
นี่คือไฟล์การกำหนดค่าที่สมบูรณ์พร้อมสถานการณ์ทั่วไปหลายประการ:
[*]
ซีซี = /usr/bin/gcc-4.0
c++ = /usr/bin/g++-4.0
เดิม = /usr/bin/ld
ทำ = /usr/bin/ทำ
# แสดงความคิดเห็นกลับมาเพื่อแก้ไขข้อบกพร่อง
#ละเอียด
distcc = /usr/bin/distcc
distcc-hosts = จับ swarm1 swarm3 swarm4 swarm5 fandango2 mingo
distc++-hosts = จับ mingo
ccache = /usr/bin/ccache
# ทำการตรวจสอบโดยทั่วไปไม่ควรทำงานแบบขนาน
ไม่ขนาน = ตรวจสอบ
# Wesnoth ไม่ได้คอมไพล์ด้วย g++ 4.0
[*เวสนอธ*]
c++ = /usr/bin/g++-3.4
# โมดูลบุคคลที่สามที่โง่ไม่ได้สร้างแบบขนาน
[/usr/src/โมดูล/*]
ไม่ขนาน = *
# การใช้ distcc เมื่อทดสอบ module-init-tools ทำให้เกิดเอฟเฟกต์แปลก ๆ
[*โมดูล-init-tools*/tests/*]
distcc ปิดการใช้งาน
ใช้ ccontrol ออนไลน์โดยใช้บริการ onworks.net