นี่คือคำสั่ง dmcs ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
mcs - โมโน C# คอมไพเลอร์
เรื่องย่อ
MCS [ตัวเลือก] [ซอร์สไฟล์]
DESCRIPTION
mcs คือคอมไพเลอร์ Mono C# ซึ่งเป็นการใช้งานข้อกำหนดภาษา ECMA-334
คุณสามารถส่งตัวเลือกอย่างน้อยหนึ่งตัวเลือกเพื่อขับเคลื่อนคอมไพเลอร์ และชุดของไฟล์ต้นทาง พิเศษ
ตัวเลือกหรืออาร์กิวเมนต์สามารถระบุได้ในไฟล์ตอบกลับ ไฟล์ตอบกลับถูกอ้างอิงโดย
เติมสัญลักษณ์ @ ไว้ข้างหน้าชื่อไฟล์ตอบกลับ
พื้นที่ MCS คอมไพเลอร์ใช้เพื่อคอมไพล์เทียบกับ Mono Base Class Library เวอร์ชันล่าสุดและ
ใช้ข้อกำหนด C# 1.0, 2.0, 3.0 และ 4.0 อย่างเต็มที่
ดูข้อมูลเพิ่มเติมในส่วนแพ็คเกจ
คอมไพเลอร์ Mono C# ยอมรับตัวเลือกบรรทัดคำสั่งเดียวกันกับที่คอมไพเลอร์ Microsoft C#
ทำ. ตัวเลือกเหล่านั้นสามารถเริ่มต้นด้วยเครื่องหมายทับหรือเส้นประ (/checked เหมือนกับ -checked)
นอกจากนี้ยังรองรับบางตัวเลือกที่คล้ายกับ GNU ซึ่งขึ้นต้นด้วย "--" เฉพาะ MCS ทั้งหมด
แฟล็กที่ไม่มีในคอมไพเลอร์ Microsoft C# จะใช้ได้เฉพาะกับ
ตัวเลือกสไตล์ GNU
ไฟล์ต้นฉบับ C# ต้องลงท้ายด้วยนามสกุล ".cs" ต้องการคอมไพล์ซอร์สโค้ด C#
ไฟล์ทั้งหมดที่ประกอบขึ้นเป็นไลบรารี โมดูล หรือไฟล์เรียกทำงานที่จะจัดเตรียมไว้ในคำสั่ง
ไลน์. ไม่มีการสนับสนุนการคอมไพล์บางส่วน เพื่อให้บรรลุประโยชน์ของบางส่วน
การคอมไพล์คุณควรคอมไพล์โปรแกรมเป็นแอสเซมบลีของตัวเองและอ้างอิงในภายหลัง
ด้วยแฟล็ก "-r"
คอมไพเลอร์ Mono C# สร้างรูปภาพ (ไฟล์ .exe) ที่มีรหัสไบต์ CIL ที่สามารถเป็น
ดำเนินการโดยระบบใด ๆ ที่ใช้เครื่องเสมือนโครงสร้างพื้นฐานภาษาทั่วไป
เช่น เอ็นจิ้นรันไทม์ Microsoft .NET บน Windows หรือเอ็นจิ้นรันไทม์โมโนบน Unix
ระบบต่างๆ โปรแกรมปฏิบัติการไม่ได้ผูกกับ CPU หรือระบบปฏิบัติการเฉพาะ
คอมไพเลอร์ Mono C# โดยค่าเริ่มต้นจะอ้างอิงถึงสามแอสเซมบลีเท่านั้น: mscorlib.dll, System.dll
และ System.Xml.dll หากคุณต้องการอ้างอิงไลบรารีเพิ่มเติม คุณต้องระบุ . ด้วยตนเอง
โดยใช้ตัวเลือกบรรทัดคำสั่ง -pkg: หรือตัวเลือกบรรทัดคำสั่ง -r: หรือถ้า
คุณต้องการรับไลบรารีระบบทั้งหมด คุณสามารถใช้ -pkg:dotnet command line
ตัวเลือก
OPTIONS
--about
แสดงข้อมูลเกี่ยวกับคอมไพเลอร์ Mono C#
--addmodule:MODULE1[,โมดูล2]
รวมโมดูลที่ระบุในชุดประกอบผลลัพธ์ โมดูลถูกสร้างขึ้นโดย
เรียกคอมไพเลอร์ด้วย -target:module option
-ตรวจสอบ, -ตรวจ+
ตั้งค่าโหมดการรวบรวมเริ่มต้นเป็น 'ตรวจสอบ' สิ่งนี้ทำให้การดำเนินการทางคณิตศาสตร์ทั้งหมด
ตรวจสอบแล้ว (ค่าเริ่มต้นจะไม่ถูกเลือก)
-ตรวจสอบ-
ตั้งค่าโหมดการรวบรวมเริ่มต้นเป็น 'ไม่ได้เลือก' สิ่งนี้ทำให้คณิตศาสตร์ทั้งหมด
ไม่ได้เลือกการดำเนินการ (นี่คือค่าเริ่มต้น)
-clscheck-, -clscheck+
ปิดใช้งานหรือเปิดใช้งานการตรวจสอบข้อกำหนดภาษาทั่วไป (CLS) (เปิดใช้งานอยู่
โดยค่าเริ่มต้น).
ข้อกำหนดภาษาทั่วไป (CLS) กำหนดชุดย่อยที่ทำงานร่วมกันได้ของประเภทเป็น
รวมถึงอนุสัญญาที่คอมไพเลอร์ (ผู้ผลิต CLS) และนักพัฒนาต้องปฏิบัติตาม
เปิดเผยโค้ดกับภาษาการเขียนโปรแกรมอื่นๆ (ผู้บริโภค CLS)
-เพจรหัส:ไอดี
ระบุโค้ดเพจที่ใช้ในการประมวลผลไฟล์อินพุตจากจุดที่เป็น
ระบุไว้ใน โดยค่าเริ่มต้น ไฟล์จะถูกประมวลผลโดยขึ้นอยู่กับสภาพแวดล้อม
หน้ารหัสเนทีฟ คอมไพเลอร์จะตรวจจับไฟล์ Unicode โดยอัตโนมัติด้วย
มีเครื่องหมายไบต์ฝังตัวที่จุดเริ่มต้น
การเข้ารหัสยอดนิยมอื่นๆ ได้แก่ 28591 (Latin1), 1252 (iso-8859-1) และ 65001 (UTF-8)
MCS รองรับการจดชวเลขสองสามแบบ: "utf8" สามารถใช้เพื่อระบุ utf-8 แทน
การใช้รหัสลับ 65001 และ "รีเซ็ต" จะกู้คืนการจัดการโค้ดเพจโดยอัตโนมัติ
ไม่มีชวเลขเหล่านี้ในคอมไพเลอร์ของ Microsoft
- กำหนด: SYMLIST, -d: SYMLIST
กำหนดสัญลักษณ์ที่แสดงโดยรายการ SYMLIST SYMBOL ที่คั่นด้วยเครื่องหมายอัฒภาค นี้
สามารถทดสอบในซอร์สโค้ดโดยตัวประมวลผลล่วงหน้าหรือสามารถใช้โดยวิธี
ที่ถูกแท็กด้วยแอตทริบิวต์เงื่อนไข
- แก้ปัญหา -ดีบั๊ก+
สร้างข้อมูลการดีบัก เพื่อให้ได้สแต็กเทรซพร้อมข้อมูลการดีบัก
คุณต้องเรียกใช้โมโนรันไทม์ด้วยแฟล็ก `--debug' การดีบัก
ข้อมูลถูกเก็บไว้ในไฟล์ MDB ซึ่งอยู่ในโฟลเดอร์เอาต์พุตเดียวกันกับที่ผลิต
การชุมนุม
-ดีบัก-
อย่าสร้างข้อมูลการดีบัก
-delaysign+
ฝังเฉพาะคีย์สาธารณะของ strongname ลงในแอสเซมบลี การลงนามจริงต้องเป็น
ทำในขั้นตอนต่อมาโดยใช้เครื่องมือ SN สิ่งนี้มีประโยชน์ในการปกป้องคีย์ส่วนตัว
ในระหว่างการพัฒนา โปรดทราบว่าการลงนามล่าช้าสามารถทำได้โดยใช้คีย์ชื่อที่แข็งแกร่งเท่านั้น
ไฟล์ (ไม่ใช่คอนเทนเนอร์คีย์) ตัวเลือกนี้เทียบเท่ากับการรวม [แอสเซมบลี:
AssemblyDelaySign (จริง)] ในซอร์สโค้ดของคุณ ตัวเลือกคอมไพเลอร์มีความสำคัญกว่า
เหนือคุณลักษณะ
-ล่าช้า-
ค่าเริ่มต้น. Strongname (ลงชื่อ) แอสเซมบลีโดยใช้ไฟล์คีย์ชื่อที่รัดกุม (or
คอนเทนเนอร์). ตัวเลือกนี้เทียบเท่ากับการรวม [แอสเซมบลี: AssemblyDelaySign
(เท็จ)] ในซอร์สโค้ดของคุณ ตัวเลือกคอมไพเลอร์มีความสำคัญเหนือแอตทริบิวต์
-doc:ไฟล์
แยกเอกสาร C#/XML จากซอร์สโค้ดและเก็บไว้ในไฟล์ที่กำหนด
ไฟล์.
-รายงานข้อผิดพลาด
แฟล็กนี้ถูกละเว้นโดยคอมไพเลอร์ C# ของ Mono และมีอยู่เพื่อให้ MCS เป็น . เท่านั้น
ใช้แทน CSC สำหรับ msbuild/xbuild
--ร้ายแรง
ใช้สำหรับการดีบักคอมไพเลอร์ สิ่งนี้ทำให้การปล่อยข้อผิดพลาดสร้าง an
ข้อยกเว้นที่โปรแกรมดีบั๊กจับได้
-การจัดตำแหน่งไฟล์
แฟล็กนี้ถูกละเว้นโดยคอมไพเลอร์ C# ของ Mono และมีอยู่เพื่อให้ MCS เป็น . เท่านั้น
ใช้แทน CSC สำหรับ msbuild/xbuild
-เส้นทางเต็ม
ข้อผิดพลาดของซอร์สโค้ดหรือคำเตือนใดๆ ที่ออกโดยคอมไพเลอร์จะรวมชื่อไฟล์โดย .เท่านั้น
ค่าเริ่มต้น. ตัวเลือกนี้ทำให้คอมไพเลอร์ออกเส้นทางไฟล์แบบสัมบูรณ์แทน
-keyfile:KEYFILE
Strongname (ลงชื่อ) เอาต์พุตแอสเซมบลีโดยใช้คู่คีย์ที่มีอยู่ในที่ระบุ
ไฟล์คีย์ชื่อที่แข็งแกร่ง (snk) ต้องใช้คู่คีย์แบบเต็มโดยค่าเริ่มต้น (หรือเมื่อใช้
ล่าช้า-). ไฟล์ที่มีเฉพาะกุญแจสาธารณะเท่านั้นที่สามารถใช้ได้กับ delaysign+ NS
ตัวเลือกเทียบเท่ากับการรวม [assembly: AssemblyKeyFile ("KEYFILE")] ใน your
รหัสแหล่งที่มา. ตัวเลือกคอมไพเลอร์มีความสำคัญเหนือแอตทริบิวต์
-keycontainer:คอนเทนเนอร์
Strongname (ลงชื่อ) เอาต์พุตแอสเซมบลีโดยใช้คู่คีย์ที่มีอยู่ในที่ระบุ
คอนเทนเนอร์. โปรดทราบว่าระบบจะละเว้นการหน่วงเวลา+ เมื่อใช้คอนเทนเนอร์คีย์ ทางเลือกคือ
เทียบเท่ากับการรวม [assembly: AssemblyKeyName ("CONTAINER")] ในแหล่งที่มาของคุณ
รหัส. ตัวเลือกคอมไพเลอร์มีความสำคัญเหนือแอตทริบิวต์
-เวอร์ชั่นภาษา:TEXT
ตัวเลือกระบุเวอร์ชันของภาษาที่จะใช้ ชุดคุณลักษณะคือ
แตกต่างกันในแต่ละเวอร์ชัน C# สวิตช์นี้สามารถใช้เพื่อบังคับให้คอมไพเลอร์เป็น
อนุญาตเฉพาะส่วนย่อยของคุณสมบัติ ค่าที่เป็นไปได้คือ:
ค่าเริ่มต้น
สั่งให้คอมไพเลอร์ใช้เวอร์ชันล่าสุด เทียบเท่าคือการละเว้น
สวิตช์ (ปัจจุบันเป็นค่าเริ่มต้นของข้อกำหนดภาษา C # 4.0)
ISO-1 จำกัดคอมไพเลอร์ให้ใช้เฉพาะคุณลักษณะมาตรฐาน ISO แรกเท่านั้น การใช้
คุณสมบัติต่างๆ เช่น ยาชื่อสามัญ คลาสสแตติก เมธอดนิรนามจะนำไปสู่
ความผิดพลาด
ISO-2 จำกัดคอมไพเลอร์ให้ใช้เฉพาะคุณลักษณะมาตรฐาน ISO ที่สองเท่านั้น นี้
อนุญาตให้ใช้ชื่อสามัญ คลาสสแตติก ตัววนซ้ำ และเมธอดนิรนาม
เช่น
3 จำกัดคอมไพเลอร์ให้ใช้เฉพาะฟีเจอร์ที่มีใน C# 3.0 (a
ซูเปอร์เซ็ตของ ISO-1 และ ISO-2)
4 จำกัดคอมไพเลอร์ให้ใช้เฉพาะฟีเจอร์ที่มีใน C# 4.0
สเปค
การทดลอง
เปิดใช้งานคุณลักษณะที่ไม่เสถียรจากภาษาเวอร์ชันถัดไป
โปรดสังเกตว่าแฟล็กนี้จำกัดเฉพาะคุณสมบัติภาษาที่มีให้
โปรแกรมเมอร์ สามารถควบคุมเวอร์ชันของชุดประกอบที่ผลิตได้โดยใช้ SDK ตัวเลือก
-lib:PATHLIST
แต่ละเส้นทางที่ระบุในรายการที่คั่นด้วยเครื่องหมายจุลภาคจะนำคอมไพเลอร์ไปที่ look
สำหรับไลบรารีในเส้นทางที่ระบุ
-L เส้นทาง
สั่งให้คอมไพเลอร์ค้นหาไลบรารีในพาธที่ระบุ หลายเส้นทาง
สามารถให้บริการได้โดยใช้ตัวเลือกหลายครั้ง
-หลัก:CLASS
บอกคอมไพเลอร์ที่ CLASS มีจุดเริ่มต้น มีประโยชน์เมื่อคุณเป็น
รวบรวมหลายคลาสด้วยวิธีการหลัก
-nostdlib, -nostdlib+
ใช้แฟล็กนี้หากคุณต้องการคอมไพล์ไลบรารี่หลัก สิ่งนี้ทำให้คอมไพเลอร์
โหลดประเภทภายในจากแอสเซมบลีที่คอมไพล์
-ไม่มีการกำหนดค่า -noconfig+
ปิดใช้งานการกำหนดค่าคอมไพเลอร์เริ่มต้นที่จะโหลด คอมไพเลอร์โดยค่าเริ่มต้น
มีการอ้างอิงถึงแอสเซมบลีของระบบ
-nowarn:คำเตือน
ทำให้คอมไพเลอร์ละเว้นคำเตือนที่ระบุในรายการที่คั่นด้วยเครื่องหมายจุลภาค WARNLIST>
-เพิ่มประสิทธิภาพ -เพิ่มประสิทธิภาพ+, -เพิ่มประสิทธิภาพ-
ควบคุมการเพิ่มประสิทธิภาพการสร้างโค้ดคอมไพเลอร์ในโค้ด ใช้ -optimize หรือ
-optimize+ จะเปิดการเพิ่มประสิทธิภาพ -optimize- จะปิดการทำงาน ค่าเริ่มต้นใน
mcs คือการเพิ่มประสิทธิภาพ- อ็อพชันสามารถผสมกับ -debug แต่เพื่อการดีบักที่ดีที่สุด
ขอแนะนำให้ออกจากตัวเลือกนี้
-ออก:FNAME, -o เอฟเนม
ตั้งชื่อไฟล์เอาต์พุตที่จะสร้าง
--แยกวิเคราะห์
ใช้สำหรับสอบเทียบ คอมไพเลอร์จะแยกวิเคราะห์ไฟล์อินพุตเท่านั้น
-pkg:แพ็คเกจ1[,แพ็คเกจN]
แอสเซมบลีอ้างอิงสำหรับแพ็คเกจที่กำหนด
คอมไพเลอร์จะเรียกใช้ pkg-config --libs บนชุดของแพ็คเกจที่ระบุบน
บรรทัดคำสั่งเพื่อรับไลบรารีและไดเร็กทอรีเพื่อคอมไพล์โค้ด
โดยทั่วไปจะใช้กับส่วนประกอบของบุคคลที่สาม เช่น:
$ mcs -pkg:gtk-sharp demo.cs
-pkg:ดอทเน็ต
สิ่งนี้จะสั่งให้คอมไพเลอร์อ้างอิงไลบรารี System.*
มีอยู่ในการติดตั้งดอทเน็ตเฟรมเวิร์กทั่วไป สังเกตว่าสิ่งนี้ไม่ได้
ไม่รวมไลบรารี Mono ทั้งหมด เฉพาะไลบรารี System.* มันคือ
ทางลัดที่สะดวกสำหรับรหัสการพอร์ตเหล่านั้น
-แพลตฟอร์ม:ARCH
ใช้เพื่อระบุแพลตฟอร์มเป้าหมาย ค่าที่เป็นไปได้คือ: anycpu,
anycpu32bitpreferred, arm, x86, x64 หรือ itanium ตัวเลือกเริ่มต้นคือ anycpu
-resource:ทรัพยากร[,ID]
ฝังลงในไฟล์ทรัพยากรที่กำหนด รหัสเสริมสามารถใช้เพื่อให้แตกต่างกัน
ชื่อทรัพยากร หากไม่ระบุ ชื่อทรัพยากรจะเป็นชื่อไฟล์
-linkresource:ทรัพยากร[,ID]
ลิงค์ไปยัง RESOURCE ที่ระบุ สามารถใช้ ID เสริมเพื่อตั้งชื่อให้กับ
ทรัพยากรที่เชื่อมโยง
-r:ASSEMBLY1[,ประกอบ2], - การอ้างอิง แอสเซมบลี1[,แอสเซมบลี2]
อ้างอิงแอสเซมบลีที่มีชื่อ ใช้สิ่งนี้เพื่อใช้คลาสจากแอสเซมบลีที่มีชื่อใน
โปรแกรมของคุณ แอสเซมบลีจะถูกโหลดจากไดเร็กทอรีระบบโดยที่
แอสเซมบลีทั้งหมดมีชีวิตอยู่ หรือจากเส้นทางที่ระบุอย่างชัดเจนด้วยตัวเลือก -L
คุณยังสามารถใช้เครื่องหมายอัฒภาคเพื่อแยกแอสเซมบลีแทนเครื่องหมายจุลภาค
-reference:ALIAS=แอสเซมบลี
รองรับการอ้างอิงนามแฝงภายนอกสำหรับ C #
หากคุณมีชุดประกอบที่แตกต่างกันซึ่งมีประเภทเดียวกัน นามแฝงภายนอก
ฝ่ายสนับสนุนอนุญาตให้คุณระบุชื่อที่ซอฟต์แวร์ของคุณสามารถใช้เพื่อบอกชื่อเหล่านั้นได้
ต่าง ประเภทจาก ASSEMBLY จะถูกเปิดเผยเป็น ALIAS จากนั้นใน C# source
รหัสคุณต้องทำ:
นามแฝงภายนอก ALIAS;
เพื่อนำไปไว้ในเนมสเปซของคุณ ตัวอย่างเช่น เพื่อจัดการกับสองไลบรารีกราฟิก
ที่กำหนด "Graphics.Point" หนึ่งใน "OpenGL.dll" และอีกอันใน "Postscript.dll" คุณ
จะเรียกใช้คอมไพเลอร์เช่นนี้:
mcs -r:Postscript=Postscript.dll -r:OpenGL=OpenGL.dll
และในซอร์สโค้ดของคุณ คุณจะต้องเขียน:
นามแฝงภายนอก Postscript;
นามแฝงภายนอก OpenGL;
คลาส X {
// นี่คือ Graphics.Point จาก Postscrip.dll
Postscript.Point p = ใหม่ Postscript.Point ();
// นี่คือ Graphics.Point จาก OpenGL.dll
OpenGL.Point p = ใหม่ OpenGL.Point ();
}
-recurse:รูปแบบ, --การสาปแช่ง รูปแบบ
การคอมไพล์แบบเรียกซ้ำโดยใช้รูปแบบที่ระบุหรือไม่ ใน Unix เชลล์จะ
ทำการ globbing ดังนั้นคุณอาจต้องการใช้สิ่งนี้:
$ mcs -recurse:'*.cs'
-sdk:เวอร์ชัน
ใช้เพื่อระบุเวอร์ชันของแอสเซมบลี Base Class Library ที่ใช้ในการคอมไพล์
ค่าที่กำหนดไว้ล่วงหน้าต่อไปนี้ถูกต้อง: 2, 4 (ค่าเริ่มต้น) เช่นเดียวกับค่าที่กำหนดเองใดๆ
หมายเลขเวอร์ชันที่กำหนดไว้ล่วงหน้าหมายถึงค่าที่กำหนดเองที่ระบุ mcs จะพยายาม
ค้นหา Base Class Libraries ในตำแหน่งที่ติดตั้งโมโน PREFIX/lib/mono/ .
--เปลือก
เริ่มต้นคอมไพเลอร์ในโหมดโต้ตอบ โดยจัดให้มีเชลล์ C# สำหรับคำสั่งและ
นิพจน์ ทางลัดคือการใช้ คม คำสั่งโดยตรง
--stacktrace
สร้างการติดตามสแต็กในขณะที่รายงานข้อผิดพลาด ซึ่งมีประโยชน์สำหรับการดีบัก
คอมไพเลอร์
-เป้าหมาย:ชนิด, -t:ชนิด
ใช้เพื่อระบุเป้าหมายที่ต้องการ ค่าที่เป็นไปได้คือ: exe (ธรรมดา
ปฏิบัติการ), winexe (ปฏิบัติการ Windows.Forms), ไลบรารี (ไลบรารีส่วนประกอบ) และ
โมดูล (ไลบรารีบางส่วน)
--ประทับเวลา
แฟล็กการดีบักอื่น ใช้แสดงเวลาตามจุดต่างๆใน
กระบวนการรวบรวม
-ไม่ปลอดภัย -ไม่ปลอดภัย+
เปิดใช้งานการรวบรวมรหัสที่ไม่ปลอดภัย
-v การดีบัก เปิดการแยกวิเคราะห์ verbose yacc
--รุ่น
แสดงเวอร์ชันคอมไพเลอร์
-คำเตือนข้อผิดพลาด -warnaserror+
คำเตือนคอมไพเลอร์ทั้งหมดจะถูกรายงานเป็นข้อผิดพลาด
-คำเตือนข้อผิดพลาด:W1,[Wn], -warnaserror+:W1,[แพ้]
ถือว่าคำเตือนคอมไพเลอร์ตั้งแต่หนึ่งรายการขึ้นไปเป็นข้อผิดพลาด
-คำเตือนข้อผิดพลาด-:W1,[Wn]
ตั้งค่าคำเตือนของคอมไพเลอร์ตั้งแต่หนึ่งรายการขึ้นไปที่จะถูกคุกคามเป็นคำเตือนเสมอ กลายเป็น
มีประโยชน์เมื่อใช้ร่วมกับ -warnaserror
-เตือน:ระดับ
ตั้งค่าระดับการเตือน 0 คือระดับการเตือนต่ำสุด และ 4 คือระดับการเตือนสูงสุด NS
ค่าเริ่มต้นคือ 4
-win32res:ไฟล์
ระบุไฟล์ทรัพยากร Win32 (.res) ที่จะรวมเข้ากับแอสเซมบลีที่เป็นผลลัพธ์
-win32icon:ไฟล์
แนบไอคอนที่ระบุใน FILE บนเอาต์พุตเข้ากับแอสเซมบลีที่เป็นผลลัพธ์
-- ใช้สิ่งนี้เพื่อหยุดการแยกวิเคราะห์ตัวเลือก และอนุญาตให้ส่งผ่านพารามิเตอร์ที่มองหาตัวเลือก
บนบรรทัดคำสั่ง
แพ็คเกจ AND ห้องสมุด
เมื่ออ้างถึงแอสเซมบลี ถ้าชื่อของแอสเซมบลีเป็นพาธ คอมไพเลอร์จะพยายาม
เพื่อโหลดแอสเซมบลีที่ระบุในเส้นทาง หากไม่เป็นเช่นนั้นคอมไพเลอร์จะพยายาม
กำลังโหลดแอสเซมบลีจากไดเร็กทอรีปัจจุบัน ไดเร็กทอรีฐานของคอมไพเลอร์ และถ้า
ไม่พบแอสเซมบลีในสถานที่เหล่านั้นในไดเร็กทอรีที่ระบุเป็นอาร์กิวเมนต์ของ
-lib: อาร์กิวเมนต์คำสั่ง
คอมไพเลอร์ใช้เส้นทางไลบรารีเพื่อค้นหาไลบรารี และสามารถอ้างอิงไลบรารี
จากแพ็คเกจเฉพาะหากใช้ไดเร็กทอรีนั้น เพื่อให้การใช้แพ็คเกจง่ายขึ้น the
คอมไพเลอร์ C# รวมตัวเลือกบรรทัดคำสั่ง -pkg: ที่ใช้เพื่อโหลดเฉพาะ
คอลเลกชันของห้องสมุด
ไลบรารี่ที่คอมไพเลอร์มองเห็นจะถูกเก็บไว้โดยสัมพันธ์กับคำนำหน้าการติดตั้งภายใต้
PREFIX/lib/mono/ เรียกว่า PACKAGEBASE และค่าเริ่มต้นสำหรับ mcs, gmcs และ smcs จะเป็นดังนี้
ดังต่อไปนี้:
MCS อ้างอิงไดเร็กทอรี PACKAGEBASE/1.0
จีเอ็มซี อ้างอิงไดเร็กทอรี PACKAGEBASE/2.0
เอสเอ็มเอส อ้างอิงไดเร็กทอรี PACKAGEBASE/2.1
นี่เป็นโปรไฟล์รันไทม์เดียวที่มีอยู่ แม้ว่าจะมีไดเร็กทอรีอื่นอยู่ (เช่น
3.0 และ 3.5) สิ่งเหล่านี้ไม่ใช่โปรไฟล์รันไทม์จริงๆ เป็นเพียงตัวยึดสำหรับส่วนเสริม
ไลบรารีที่สร้างบนพื้นฐาน 2.0
ผู้ให้บริการซอฟต์แวร์จะแจกจ่ายซอฟต์แวร์ที่ติดตั้งโดยสัมพันธ์กับ PACKAGEBASE
ไดเร็กทอรี. สิ่งนี้ถูกรวมเข้ากับ กาคูทิล เครื่องมือที่ไม่เพียงแต่ติดตั้งแบบสาธารณะ
แอสเซมบลีใน Global Assembly Cache (GAC) แต่ยังติดตั้งลงใน
ไดเร็กทอรี PACKAGEBASE/PKG (โดยที่ PKG คือชื่อที่ส่งผ่านไปยังแฟล็ก -package ไปยัง gacutil)
ในฐานะนักพัฒนา หากคุณต้องการใช้ไลบรารี Gtk# คุณจะต้องเรียกใช้คอมไพเลอร์
อย่างนี้:
$ mcs -pkg:gtk-sharp-2.0 main.cs
ตัวเลือก -pkg: สั่งให้คอมไพเลอร์ดึงคำจำกัดความสำหรับ gtk-sharp-2.0 จาก
pkg-config นี่เทียบเท่ากับการส่งผลลัพธ์ไปยังคอมไพเลอร์ C # ของ:
$ pkg-config --libs gtk-sharp-2.0
โดยปกตินี่เป็นเพียงการอ้างอิงไลบรารีจาก PACKAGEBASE/PKG
แม้ว่าจะมีชื่อไดเร็กทอรีสำหรับ 3.0 และ 3.5 แต่นั่นไม่ได้หมายความว่ามี3.0
และ 3.5 รุ่นคอมไพเลอร์หรือโปรไฟล์ นั่นเป็นเพียงห้องสมุดใหม่ที่ต้อง
อ้างอิงด้วยตนเองด้วย -pkg ที่เหมาะสม: การวิงวอนหรือโดยการอ้างอิง
ห้องสมุดโดยตรง
พิเศษ กำหนด
พื้นที่ ติดตาม และ แก้ปัญหา กำหนดมีความหมายพิเศษให้กับคอมไพเลอร์
โดยค่าเริ่มต้นการเรียกใช้เมธอดและคุณสมบัติในคลาส System.Diagnostics.Trace ไม่ใช่
สร้างขึ้นเว้นแต่จะมีการกำหนดสัญลักษณ์ TRACE (ผ่าน "#define TRACE") ในของคุณ
ซอร์สโค้ดหรือโดยใช้ --กำหนด ติดตาม ในบรรทัดคำสั่ง
โดยค่าเริ่มต้นการเรียกใช้เมธอดและคุณสมบัติในคลาส System.Diagnostics.Debug ไม่ใช่
สร้างขึ้นเว้นแต่จะมีการกำหนดสัญลักษณ์ DEBUG (ผ่าน "#define DEBUG") ในของคุณ
ซอร์สโค้ดหรือโดยใช้ --กำหนด แก้ปัญหา ในบรรทัดคำสั่ง
โปรดทราบว่าผลกระทบของการกำหนด TRACE และ DEBUG เป็นการตั้งค่าส่วนกลาง แม้ว่าจะ
กำหนดไว้ในไฟล์เดียวเท่านั้น
การดีบัก การสนับสนุน
เมื่อใช้แฟล็ก "-debug" MCS จะสร้างไฟล์ที่มีนามสกุล .mdb that
มีข้อมูลการดีบักสำหรับแอสเซมบลีที่สร้างขึ้น ไฟล์นี้ถูกใช้โดย
ดีบักเกอร์โมโน (mdb)
และพวกเรา ตัวแปร
MCS_COLORS
หากมีการตั้งค่าตัวแปรนี้ จะมีสตริงในรูปแบบ "เบื้องหน้าเบื้องหลัง"
ที่ระบุสีที่จะใช้แสดงข้อผิดพลาดในเทอร์มินัลบางตัว
พื้นหลังเป็นตัวเลือกและเป็นค่าเริ่มต้นสำหรับพื้นหลังปัจจุบันของเทอร์มินัล NS
สีที่เป็นไปได้สำหรับพื้นหน้าคือ: สีดำ สีแดง, แดงสด, สีเขียว, เขียวชอุ่ม,
สีเหลือง, สีเหลืองสดใส, ฟ้า, ฟ้าสว่าง, ม่วงแดง, ม่วงแดงสว่าง, ฟ้า, ฟ้าสดใส,
สีเทา สีขาว และสีขาวสว่าง
สีพื้นหลังที่เป็นไปได้คือ: ดำ, แดง, เขียว, เหลือง, น้ำเงิน, ม่วงแดง,
สีฟ้า สีเทา และสีขาว
ตัวอย่างเช่น คุณสามารถตั้งค่าตัวแปรเหล่านี้จากเชลล์ของคุณ:
ส่งออก MCS_COLORS
MCS_COLORS=ข้อผิดพลาด=สีขาวสว่าง,สีแดง
คุณสามารถปิดใช้งานชุดรูปแบบสีในตัวโดยตั้งค่าตัวแปรนี้เป็น "ปิดใช้งาน"
หมายเหตุ
ในระหว่างการคอมไพล์ คอมไพเลอร์ MCS จะกำหนดสัญลักษณ์ __MonoCS__ ซึ่งสามารถใช้ได้โดย
คำแนะนำตัวประมวลผลล่วงหน้าเพื่อคอมไพล์โค้ดเฉพาะของคอมไพเลอร์ Mono C# โปรดทราบว่า
สัญลักษณ์นี้ใช้เพื่อทดสอบคอมไพเลอร์เท่านั้น และไม่มีประโยชน์ในการแยกแยะการคอมไพล์
หรือแพลตฟอร์มการปรับใช้
ผู้เขียน
คอมไพเลอร์ Mono C# เขียนโดย Miguel de Icaza, Ravi Pratap, Martin Baulig, Marek
สะฟาร์ และ ราชาหรินาถ. การพัฒนาได้รับทุนจาก Ximian, Novell และ Marek Safar
ใช้ dmcs ออนไลน์โดยใช้บริการ onworks.net