นี่คือคำสั่ง clang-3.5 ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
clang - คอมไพเลอร์ Clang C, C++ และ Objective-C
เรื่องย่อ
เสียงดังกราว [-c|-S|-E] -std=มาตรฐาน -g
[-O0|-O1|-O2|-O3|-Ofast|-คุณ|-ออนซ์|-O|-O4]
-Wคำเตือน... -อวดดี
-Iผ... -Lผ...
-Dมาโคร[=defn]
-fคุณสมบัติ-ตัวเลือก...
-mเครื่องตัวเลือก...
-o ไฟล์เอาต์พุต
-stdlib=ห้องสมุด
ชื่อไฟล์อินพุต
DESCRIPTION
เสียงดังกราว เป็นคอมไพเลอร์ C, C++ และ Objective-C ซึ่งครอบคลุมการประมวลผลล่วงหน้า การแยกวิเคราะห์
การเพิ่มประสิทธิภาพ การสร้างโค้ด การประกอบ และการเชื่อมโยง ขึ้นอยู่กับโหมดระดับสูง
ผ่านการตั้งค่า Clang จะหยุดก่อนที่จะทำการเชื่อมโยงแบบเต็ม ในขณะที่ Clang สูงมาก
บูรณาการเป็นสิ่งสำคัญที่จะเข้าใจขั้นตอนของการรวบรวมเพื่อทำความเข้าใจวิธีการ
เรียกมัน ขั้นตอนเหล่านี้คือ:
คนขับรถ
พื้นที่ เสียงดังกราว จริง ๆ แล้ว executable เป็นไดรเวอร์ขนาดเล็กที่ควบคุมการดำเนินการโดยรวม
ของเครื่องมืออื่นๆ เช่น คอมไพเลอร์ แอสเซมเบลอร์ และลิงเกอร์ โดยปกติคุณไม่จำเป็นต้อง
เพื่อโต้ตอบกับไดรเวอร์ แต่คุณใช้มันอย่างโปร่งใสเพื่อเรียกใช้เครื่องมืออื่นๆ
กระบวนการเตรียมการผลิต
ขั้นตอนนี้จัดการ tokenization ของไฟล์ต้นทางอินพุต การขยายมาโคร #include
การขยายและการจัดการคำสั่งพรีโปรเซสเซอร์อื่นๆ ผลลัพธ์ของขั้นตอนนี้คือ
โดยทั่วไปเรียกว่า ".i" (สำหรับ C), ".ii" (สำหรับ C++), ".mi" (สำหรับ Objective-C) หรือ ".mii"
(สำหรับ Objective-C++) ไฟล์
วจีวิภาค และ ความหมาย การวิเคราะห์
ขั้นตอนนี้แยกวิเคราะห์ไฟล์อินพุต แปลโทเค็นตัวประมวลผลล่วงหน้าเป็นแผนผังการแยกวิเคราะห์
เมื่ออยู่ในรูปของ parser tree จะใช้การวิเคราะห์เชิงความหมายกับประเภทการคำนวณสำหรับ
นิพจน์เช่นกันและกำหนดว่าโค้ดมีรูปแบบที่ดีหรือไม่ เวทีนี้คือ
รับผิดชอบในการสร้างคำเตือนคอมไพเลอร์ส่วนใหญ่รวมถึงข้อผิดพลาดในการแยกวิเคราะห์ NS
ผลลัพธ์ของสเตจนี้คือ "Abstract Syntax Tree" (AST)
รหัส รุ่น และ การเพิ่มประสิทธิภาพ
ขั้นตอนนี้แปล AST เป็นโค้ดระดับกลางระดับต่ำ (เรียกว่า "LLVM IR") และ
ในที่สุดก็ถึงรหัสเครื่อง เฟสนี้มีหน้าที่ในการเพิ่มประสิทธิภาพที่สร้างขึ้น
รหัสและการจัดการการสร้างรหัสเฉพาะเป้าหมาย ผลลัพธ์ของขั้นตอนนี้คือ
โดยทั่วไปเรียกว่าไฟล์ ".s" หรือไฟล์ "แอสเซมบลี"
เสียงดังกราวยังสนับสนุนการใช้แอสเซมเบลอร์แบบรวมซึ่งตัวสร้างโค้ด
สร้างไฟล์วัตถุโดยตรง เพื่อหลีกเลี่ยงค่าใช้จ่ายในการสร้างไฟล์ ".s"
และการเรียกแอสเซมเบลอร์เป้าหมาย
ผู้ประกอบ
ขั้นตอนนี้รันแอสเซมเบลอร์เป้าหมายเพื่อแปลผลลัพธ์ของคอมไพเลอร์เป็นa
ไฟล์วัตถุเป้าหมาย เอาต์พุตของสเตจนี้โดยทั่วไปจะเรียกว่าไฟล์ ".o" หรือ
ไฟล์ "วัตถุ"
linker
ขั้นตอนนี้รันตัวเชื่อมโยงเป้าหมายเพื่อรวมไฟล์อ็อบเจ็กต์หลายไฟล์เป็นไฟล์เรียกทำงานหรือ
ห้องสมุดไดนามิก เอาต์พุตของสเตจนี้โดยทั่วไปจะเรียกว่า "a.out", ".dylib" หรือ
ไฟล์ ".so"
คอมไพเลอร์ Clang รองรับตัวเลือกจำนวนมากเพื่อควบคุมแต่ละขั้นตอนเหล่านี้ ใน
นอกจากการคอมไพล์โค้ดแล้ว Clang ยังรองรับเครื่องมืออื่นๆ อีกด้วย:
เสียงดังกราว คงที่ วิเคราะห์
Clang Static Analyzer เป็นเครื่องมือที่สแกนซอร์สโค้ดเพื่อพยายามค้นหาจุดบกพร่องผ่าน
การวิเคราะห์รหัส เครื่องมือนี้ใช้ Clang หลายส่วนและรวมอยู่ในไดรเวอร์เดียวกัน
โปรดมองhttp://clang-analyzer.llvm.org> สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการใช้ static
เครื่องวิเคราะห์
OPTIONS
ระยะ การเลือก Options
-E รันสเตจพรีโปรเซสเซอร์
-fsyntax เท่านั้น
รันตัวประมวลผลล่วงหน้า ตัวแยกวิเคราะห์ และขั้นตอนการตรวจสอบประเภท
-S เรียกใช้ขั้นตอนก่อนหน้านี้ตลอดจนขั้นตอนการสร้างและการปรับให้เหมาะสมของ LLVM และเป้าหมาย-
การสร้างโค้ดเฉพาะ การสร้างไฟล์แอสเซมบลี
-c เรียกใช้ทั้งหมดข้างต้น รวมทั้งแอสเซมเบลอร์ สร้างไฟล์อ็อบเจ็กต์เป้าหมาย ".o"
ไม่ เวที การเลือก ตัวเลือก
หากไม่ได้ระบุตัวเลือกการเลือกสเตจ สเตจด้านบนทั้งหมดจะถูกรัน และตัวเชื่อมโยงคือ
เรียกใช้เพื่อรวมผลลัพธ์ลงในไลบรารีที่เรียกใช้งานได้หรือที่ใช้ร่วมกัน
ภาษา การเลือก และ โหมด Options
-x ภาษา
ปฏิบัติต่อไฟล์อินพุตที่ตามมาเหมือนมี type ภาษา.
-มาตรฐาน=ภาษา
ระบุมาตรฐานภาษาที่จะคอมไพล์
-stdlib=ห้องสมุด
ระบุไลบรารีมาตรฐาน C++ ที่จะใช้ ตัวเลือกที่รองรับคือ libstdc++ และ libc++
-แอนซี
เหมือนกับ -std=c89.
-ObjC++
ถือว่าไฟล์อินพุตต้นทางเป็นอินพุต Objective-C++
-ObjC
ถือว่าไฟล์อินพุตต้นทางเป็นอินพุต Objective-C
-ไตรกราฟ
เปิดใช้งานไตรกราฟ
- อิสระ
ระบุว่าไฟล์ควรถูกคอมไพล์สำหรับอิสระ ไม่ใช่โฮสต์
สิ่งแวดล้อม
-fno-ในตัว
ปิดใช้งานการจัดการพิเศษและการเพิ่มประสิทธิภาพของฟังก์ชันในตัว เช่น strlen และ
มัลลอค
-fmath-เออเรโน
ระบุว่าฟังก์ชันทางคณิตศาสตร์ควรได้รับการปฏิบัติเหมือนเป็นการอัพเดท errno
-fpascal-สตริง
เปิดใช้งานการรองรับสตริงแบบ Pascal ด้วย "\pfoo"
-fms-ส่วนขยาย
เปิดใช้งานการสนับสนุนสำหรับส่วนขยายของ Microsoft
-fmsc-เวอร์ชั่น=
ตั้งค่า _MSC_VER ค่าเริ่มต้นเป็น 1300 บน Windows ไม่ได้กำหนดเป็นอย่างอื่น
-fborland-ส่วนขยาย
เปิดใช้งานการสนับสนุนส่วนขยาย Borland
-fwritable-สตริง
ทำให้ตัวอักษรสตริงทั้งหมดเป็นค่าเริ่มต้นเพื่อเขียนได้ สิ่งนี้จะปิดใช้งานสตริงที่ไม่ซ้ำและ
การเพิ่มประสิทธิภาพอื่นๆ
-flax-เวกเตอร์การแปลง
อนุญาตกฎการตรวจสอบประเภทหลวมสำหรับการแปลงเวกเตอร์โดยนัย
-fblocks
เปิดใช้งานคุณสมบัติภาษา "บล็อก"
-fobjc-gc-เท่านั้น
ระบุว่าควรคอมไพล์โค้ด Objective-C ในโหมด GC-only ซึ่งใช้ได้เท่านั้น
เมื่อเปิดใช้งานการรวบรวมขยะ Objective-C
-fobjc-gc
ระบุว่าควรคอมไพล์โค้ด Objective-C ในโหมด hybrid-GC ซึ่งใช้งานได้กับ
ทั้งโหมด GC และไม่ใช่ GC
-fobjc-abi-รุ่น=รุ่น
เลือกเวอร์ชัน Objective-C ABI ที่จะใช้ รุ่นที่มีจำหน่ายคือ 1 (เดิม "เปราะบาง"
ABI), 2 (ABI ที่ไม่เปราะบาง 1) และ 3 (ABI ที่ไม่เปราะบาง 2)
-fobjc-nonfragile-abi-รุ่น=รุ่น
เลือกเวอร์ชัน ABI ที่ไม่เปราะบางของ Objective-C ที่จะใช้เป็นค่าเริ่มต้น นี่จะเป็นเพียง
ใช้เป็น Objective-C ABI เมื่อเปิดใช้งาน ABI ที่ไม่เปราะบาง (ผ่านทาง
-fobjc-nonfragile-abi หรือเพราะเป็นค่าเริ่มต้นของแพลตฟอร์ม)
-fobjc-ไม่เปราะบาง-abi
เปิดใช้งานการใช้ ABI ที่ไม่เปราะบางของ Objective-C บนแพลตฟอร์มที่นี่คือ
ABI เริ่มต้นสามารถปิดการใช้งานด้วย -fno-objc-ไม่เปราะบาง-abi.
เป้า การเลือก Options
Clang รองรับการคอมไพล์แบบไขว้อย่างเต็มที่ซึ่งเป็นส่วนหนึ่งของการออกแบบ ขึ้นอยู่กับ
วิธีการกำหนดค่า Clang เวอร์ชันของคุณอาจมีการรองรับ cross . จำนวนมาก
คอมไพเลอร์ หรืออาจสนับสนุนเฉพาะเป้าหมายดั้งเดิมเท่านั้น
-โค้ง สถาปัตยกรรม
ระบุสถาปัตยกรรมที่จะสร้าง
-mmacosx-เวอร์ชั่น-นาที=รุ่น
เมื่อสร้างสำหรับ Mac OS X ให้ระบุเวอร์ชันขั้นต่ำที่แอปพลิเคชันของคุณรองรับ
-miphoneos-เวอร์ชั่น-นาที
เมื่อสร้างสำหรับระบบปฏิบัติการ iPhone ให้ระบุเวอร์ชันขั้นต่ำที่ . ของคุณรองรับ
แอพลิเคชัน
-มีนาคม=ซีพียู
ระบุว่า Clang ควรสร้างรหัสสำหรับสมาชิกตระกูลโปรเซสเซอร์เฉพาะและ
ภายหลัง. ตัวอย่างเช่น หากคุณระบุ -march=i486 คอมไพเลอร์จะได้รับอนุญาตให้สร้าง
คำแนะนำที่ถูกต้องบน i486 และโปรเซสเซอร์ที่ใหม่กว่า แต่อาจไม่มีอยู่ใน
คนก่อนหน้านี้
รหัส รุ่น Options
-O0 -O1 -O2 -O3 -Ofast -คุณ -ออนซ์ -O -O4
ระบุระดับการปรับให้เหมาะสมที่จะใช้:
-O0 หมายถึง "ไม่มีการเพิ่มประสิทธิภาพ": ระดับนี้รวบรวมที่เร็วที่สุดและสร้างมากที่สุด
รหัสที่แก้ไขข้อบกพร่องได้
-O1 ที่ไหนสักแห่งระหว่าง -O0 และ -O2.
-O2 การเพิ่มประสิทธิภาพระดับปานกลางซึ่งช่วยให้สามารถเพิ่มประสิทธิภาพได้มากที่สุด
-O3 Like -O2ยกเว้นว่าจะเปิดใช้งานการเพิ่มประสิทธิภาพที่ใช้เวลานานกว่าในการดำเนินการหรือนั้น
อาจสร้างโค้ดขนาดใหญ่ขึ้น (เพื่อพยายามทำให้โปรแกรมทำงานเร็วขึ้น)
-Ofast
เปิดใช้งานการเพิ่มประสิทธิภาพทั้งหมดจาก -O3 พร้อมกับการเพิ่มประสิทธิภาพเชิงรุกอื่น ๆ
ที่อาจละเมิดการปฏิบัติตามมาตรฐานภาษาอย่างเคร่งครัด
-คุณ Like -O2 ด้วยการเพิ่มประสิทธิภาพพิเศษเพื่อลดขนาดโค้ด
-ออนซ์ Like -คุณ (และดังนั้น -O2) แต่ลดขนาดโค้ดลงอีก
-O เทียบเท่ากับ -O2.
-O4 และสูงกว่า
ปัจจุบันเทียบเท่ากับ -O3
-g สร้างข้อมูลการดีบัก โปรดทราบว่าข้อมูลการดีบักของ Clang ทำงานได้ดีที่สุดที่ -O0.
-fstandalone-debug -fno-สแตนด์อโลนดีบัก
Clang รองรับการเพิ่มประสิทธิภาพจำนวนหนึ่งเพื่อลดขนาดของข้อมูลการดีบักใน
ไบนารี ทำงานบนสมมติฐานที่ว่าข้อมูลประเภทการดีบักสามารถเป็นได้
กระจายไปทั่วหน่วยการรวบรวมหลายหน่วย ตัวอย่างเช่น Clang จะไม่ปล่อย type
คำจำกัดความสำหรับประเภทที่โมดูลไม่ต้องการและสามารถแทนที่ด้วย a
ประกาศไปข้างหน้า นอกจากนี้ Clang จะส่งเฉพาะข้อมูลประเภทสำหรับคลาส C ++ แบบไดนามิก
ในโมดูลที่มี vtable สำหรับคลาส
พื้นที่ -fstandalone-debug ตัวเลือกปิดการเพิ่มประสิทธิภาพเหล่านี้ สิ่งนี้มีประโยชน์เมื่อ
การทำงานกับไลบรารีของบุคคลที่สามที่ไม่มีข้อมูลการดีบัก นี้เป็น
ค่าเริ่มต้นในดาร์วิน โปรดทราบว่า Clang จะไม่ปล่อยข้อมูลประเภทสำหรับประเภทที่
ไม่ได้อ้างอิงเลยโดยโปรแกรม
- ข้อยกเว้น
เปิดใช้งานการสร้างข้อมูลที่ผ่อนคลาย ซึ่งช่วยให้สามารถโยนข้อยกเว้นผ่าน
Clang คอมไพล์เฟรมสแต็ก นี่เป็นค่าเริ่มต้นใน x86-64
-ftrapv
สร้างรหัสเพื่อตรวจจับข้อผิดพลาดล้นจำนวนเต็ม โอเวอร์โฟลว์จำนวนเต็มลงนามไม่ได้กำหนดไว้
ใน C ด้วยแฟล็กนี้ รหัสพิเศษจะถูกสร้างขึ้นเพื่อตรวจจับสิ่งนี้และยกเลิกเมื่อมัน
ที่เกิดขึ้น
-การมองเห็นได้ชัดเจน
แฟล็กนี้ตั้งค่าระดับการมองเห็นเริ่มต้น
-fcommon
แฟล็กนี้ระบุว่าตัวแปรที่ไม่มีตัวกำหนดค่าเริ่มต้นได้รับการเชื่อมโยงทั่วไป สามารถ
พิการด้วย -fno-ธรรมดา.
-ftls-รุ่น
ตั้งค่าโมเดล thread-local storage (TLS) เริ่มต้นเพื่อใช้สำหรับตัวแปร thread-local
ค่าที่ใช้ได้คือ: "global-dynamic", "local-dynamic", "initial-exec" และ "local-exec"
ค่าเริ่มต้นคือ "โกลบอลไดนามิก" โมเดลเริ่มต้นสามารถแทนที่ด้วย
แอตทริบิวต์ tls_model คอมไพเลอร์จะพยายามเลือกโมเดลที่มีประสิทธิภาพมากขึ้น if
เป็นไปได้
-flto -emit-llvm
สร้างไฟล์เอาต์พุตในรูปแบบ LLVM เหมาะสำหรับการเพิ่มประสิทธิภาพเวลาลิงก์ เมื่อใช้
กับ -S สิ่งนี้จะสร้างไฟล์แอสเซมบลีภาษากลาง LLVM มิฉะนั้น
สร้างไฟล์อ็อบเจ็กต์รูปแบบบิตโค้ด LLVM (ซึ่งอาจส่งผ่านไปยังตัวเชื่อมโยง
ขึ้นอยู่กับตัวเลือกการเลือกเวที)
คนขับรถ Options
-
พิมพ์ (แต่อย่ารัน) คำสั่งที่จะรันสำหรับการคอมไพล์นี้
--ช่วยด้วย
แสดงตัวเลือกที่มีอยู่
-Qunused อาร์กิวเมนต์
อย่าส่งคำเตือนสำหรับอาร์กิวเมนต์ไดรเวอร์ที่ไม่ได้ใช้
-วาargs
ส่งผ่านอาร์กิวเมนต์คั่นด้วยจุลภาคใน args ให้กับผู้ประกอบ
-Wlargs
ส่งผ่านอาร์กิวเมนต์คั่นด้วยจุลภาคใน args ไปยังตัวเชื่อมโยง
-Wp,args
ส่งผ่านอาร์กิวเมนต์คั่นด้วยจุลภาคใน args ไปยังตัวประมวลผลล่วงหน้า
-ซานาไลเซอร์ หาเรื่อง
ส่ง หาเรื่อง ไปยังเครื่องวิเคราะห์สถิต
-Xแอสเซมเบลอร์ หาเรื่อง
ส่ง หาเรื่อง ให้กับผู้ประกอบ
-เอ็กซ์ลิงค์เกอร์ หาเรื่อง
ส่ง หาเรื่อง ไปยังตัวเชื่อมโยง
-Xpreprocessor หาเรื่อง
ส่ง หาเรื่อง ไปยังตัวประมวลผลล่วงหน้า
-o ไฟล์
เขียนเอาต์พุตไปที่ ไฟล์.
-พิมพ์ชื่อไฟล์=ไฟล์
พิมพ์เส้นทางห้องสมุดเต็มรูปแบบของ ไฟล์.
-print-libgcc-ชื่อไฟล์
พิมพ์พาธไลบรารีสำหรับ "libgcc.a"
-พิมพ์โปรแกรมชื่อ=ชื่อ
พิมพ์เส้นทางโปรแกรมแบบเต็มของ ชื่อ.
-พิมพ์-ค้นหา-dirs
พิมพ์เส้นทางที่ใช้สำหรับค้นหาไลบรารีและโปรแกรม
-save-อุณหภูมิ
บันทึกผลการรวบรวมระดับกลาง
-บูรณาการเป็น -no-บูรณาการเป็น
ใช้เพื่อเปิดใช้งานและปิดใช้งาน ตามลำดับ การใช้แอสเซมเบลอร์แบบรวม ไม่ว่า
แอสเซมเบลอร์แบบรวมเปิดอยู่โดยค่าเริ่มต้นขึ้นอยู่กับเป้าหมาย
-เวลา
เวลาแต่ละคำสั่ง
-ftime-รายงาน
พิมพ์สรุประยะเวลาของการรวบรวมแต่ละขั้นตอน
-v แสดงคำสั่งเพื่อเรียกใช้และใช้เอาต์พุตแบบละเอียด
การวินิจฉัย Options
-fshow-คอลัมน์ -fshow-แหล่งที่มาของตำแหน่ง -fcaret-การวินิจฉัย -fdiagnostics-fixit-ข้อมูล
-fdiagnostics-แยกวิเคราะห์-fixits -fdiagnostics-พิมพ์แหล่งที่มาช่วงข้อมูล
-fprint-source-range-info -fdiagnostics-แสดงตัวเลือก -fmessage-ความยาว
ตัวเลือกเหล่านี้ควบคุมวิธีที่ Clang พิมพ์ข้อมูลเกี่ยวกับการวินิจฉัย (ข้อผิดพลาดและ
คำเตือน) โปรดดูคู่มือการใช้งาน Clang สำหรับข้อมูลเพิ่มเติม
ตัวประมวลผลล่วงหน้า Options
-Dชื่อมาโคร = ค่า
เพิ่ม #define โดยนัยลงในบัฟเฟอร์ที่กำหนดไว้ล่วงหน้าซึ่งอ่านก่อนแหล่งที่มา
ไฟล์ถูกประมวลผลล่วงหน้า
-Uนามแฝง
เพิ่ม #undef โดยนัยลงในบัฟเฟอร์ที่กำหนดไว้ล่วงหน้าซึ่งจะถูกอ่านก่อนแหล่งที่มา
ไฟล์ถูกประมวลผลล่วงหน้า
- รวม ชื่อไฟล์
เพิ่ม #include โดยนัยในบัฟเฟอร์ที่กำหนดไว้ล่วงหน้าซึ่งอ่านก่อนแหล่งที่มา
ไฟล์ถูกประมวลผลล่วงหน้า
-Iไดเรกทอรี
เพิ่มไดเร็กทอรีที่ระบุในพาธการค้นหาสำหรับไฟล์รวม
-Fไดเรกทอรี
เพิ่มไดเร็กทอรีที่ระบุในพาธการค้นหาสำหรับ framework รวมไฟล์
-nostdinc
อย่าค้นหาไดเร็กทอรีระบบมาตรฐานหรือไดเร็กทอรีบิวด์อินคอมไพเลอร์สำหรับ
รวมไฟล์.
-nostdlibinc
อย่าค้นหาไฟล์รวมในไดเร็กทอรีระบบมาตรฐาน แต่ให้ค้นหา
คอมไพเลอร์บิวด์อินรวมถึงไดเร็กทอรี
-nobuildinc
อย่าค้นหาไดเร็กทอรีบิวด์อินของ clang เพื่อรวมไฟล์
และพวกเรา
ทีเอ็มพีดีอาร์, TEMP, TMP
ตัวแปรสภาพแวดล้อมเหล่านี้ได้รับการตรวจสอบเพื่อให้ตำแหน่งเขียนชั่วคราว
ไฟล์ที่ใช้ระหว่างกระบวนการคอมไพล์
ซีพีเอธ
หากมีตัวแปรสภาพแวดล้อมนี้ จะถือเป็นรายการเส้นทางไปยัง . ที่คั่นด้วยตัวคั่น
จะถูกเพิ่มเข้าไปในระบบเริ่มต้นรวมถึงรายการเส้นทาง ตัวคั่นคือแพลตฟอร์ม
ตัวคั่นขึ้นอยู่กับที่ใช้ใน เส้นทาง ตัวแปรสภาพแวดล้อม
ส่วนประกอบที่ว่างเปล่าในตัวแปรสภาพแวดล้อมจะถูกละเว้น
C_INCLUDE_PATH, OBJC_INCLUDE_PATH, CPLUS_INCLUDE_PATH, OBJCPLUS_INCLUDE_PATH
ตัวแปรสภาพแวดล้อมเหล่านี้ระบุเส้นทางเพิ่มเติมสำหรับ CPATH ซึ่งมีเพียง
ใช้เมื่อประมวลผลภาษาที่เหมาะสม
MACOSX_DEPLOYMENT_TARGET
หากไม่ระบุ -mmacosx-version-min เป้าหมายการปรับใช้เริ่มต้นจะถูกอ่านจาก
ตัวแปรสภาพแวดล้อมนี้ ตัวเลือกนี้มีผลกับเป้าหมายดาร์วินเท่านั้น
ใช้ clang-3.5 ออนไลน์โดยใช้บริการ onworks.net