dmcs - ອອນລາຍໃນຄລາວ

ນີ້ແມ່ນຄໍາສັ່ງ dmcs ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ໂຄງການ:

NAME


mcs - Mono C# Compiler

ສະຫຼຸບສັງລວມ


mcs [ທາງ​ເລືອກ​] [ແຫຼ່ງ​ໄຟລ​໌​]

ລາຍລະອຽດ


mcs ແມ່ນ Mono C# compiler, ການປະຕິບັດການກໍານົດພາສາ ECMA-334.
ທ່ານ​ສາ​ມາດ​ຜ່ານ​ທາງ​ເລືອກ​ຫນຶ່ງ​ຫຼື​ຫຼາຍ​ເພື່ອ​ຂັບ compiler​, ແລະ​ຊຸດ​ຂອງ​ໄຟລ​໌​ແຫຼ່ງ​. ພິເສດ
ທາງເລືອກຫຼືການໂຕ້ຖຽງສາມາດສະຫນອງໃຫ້ຢູ່ໃນໄຟລ໌ຕອບສະຫນອງ. ໄຟລ໌ຕອບສະຫນອງແມ່ນອ້າງອີງໂດຍ
prepending ສັນຍາລັກ @ ກັບຊື່ໄຟລ໌ຕອບສະຫນອງ.

ໄດ້ mcs compiler ຖືກນໍາໃຊ້ເພື່ອລວບລວມຕໍ່ກັບ Mono Base Class Library ຮຸ່ນຫຼ້າສຸດແລະ
ປະຕິບັດຢ່າງເຕັມສ່ວນ C# 1.0, 2.0, 3.0 ແລະ 4.0 ສະເພາະ.

ເບິ່ງພາກສ່ວນກ່ຽວກັບການຫຸ້ມຫໍ່ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.

Mono C# compiler ຍອມຮັບຕົວເລືອກເສັ້ນຄໍາສັ່ງດຽວກັນກັບ Microsoft C# compiler
ບໍ່. ຕົວເລືອກເຫຼົ່ານັ້ນສາມາດເລີ່ມຕົ້ນດ້ວຍເຄື່ອງໝາຍເລກ ຫຼື ຂີດຕໍ່ (/ໝາຍຖືກແມ່ນຄືກັນກັບ -checked).
ນອກຈາກນັ້ນ, ບາງທາງເລືອກທີ່ຄ້າຍຄື GNU ໄດ້ຮັບການສະຫນັບສະຫນູນ, ເຊິ່ງເລີ່ມຕົ້ນດ້ວຍ "--". ສະເພາະ MCS ທັງໝົດ
ທຸງທີ່ບໍ່ມີຢູ່ໃນ Microsoft C# compiler ແມ່ນມີຢູ່ໃນພຽງແຕ່
ຕົວເລືອກແບບ GNU.

ໄຟລ໌ແຫຼ່ງ C# ຈະຕ້ອງສິ້ນສຸດດ້ວຍນາມສະກຸນ ".cs". ການລວບລວມລະຫັດແຫຼ່ງ C# ຕ້ອງການ
ໄຟລ​໌​ທັງ​ຫມົດ​ທີ່​ເຮັດ​ໃຫ້​ເຖິງ​ຫ້ອງ​ສະ​ຫມຸດ​, ໂມ​ດູນ​ຫຼື​ການ​ປະ​ຕິ​ບັດ​ທີ່​ຈະ​ສະ​ຫນອງ​ໃຫ້​ໃນ​ຄໍາ​ສັ່ງ​
ສາຍ. ບໍ່ມີການສະຫນັບສະຫນູນສໍາລັບການລວບລວມບາງສ່ວນ. ເພື່ອບັນລຸຜົນປະໂຫຍດຂອງບາງສ່ວນ
ການລວບລວມ, ທ່ານຄວນລວບລວມບັນດາໂຄງການເຂົ້າໄປໃນສະພາແຫ່ງຂອງຕົນເອງ, ແລະຕໍ່ມາກະສານອ້າງອີງ
ພວກມັນດ້ວຍທຸງ "-r".

Mono C# compiler ສ້າງຮູບພາບ (ໄຟລ໌ .exe) ທີ່ມີລະຫັດ CIL byte ທີ່ສາມາດເປັນ
ປະຕິບັດໂດຍລະບົບທີ່ປະຕິບັດເຄື່ອງ virtual ໂຄງສ້າງພື້ນຖານພາສາທົ່ວໄປ
ເຊັ່ນ: Microsoft .NET runtime engine ໃນ Windows ຫຼື Mono runtime engine ໃນ Unix
ລະບົບ. ການປະຕິບັດບໍ່ໄດ້ຜູກມັດກັບ CPU ຫຼືລະບົບປະຕິບັດການສະເພາະ.

Mono C# compiler ໂດຍຄ່າເລີ່ມຕົ້ນພຽງແຕ່ອ້າງອີງສາມປະກອບ: mscorlib.dll, System.dll
ແລະ System.Xml.dll. ຖ້າທ່ານຕ້ອງການອ້າງອີງຫ້ອງສະຫມຸດພິເສດ, ທ່ານຕ້ອງລະບຸດ້ວຍຕົນເອງ
ເຂົາເຈົ້າໃຊ້ -pkg: ທາງເລືອກແຖວຄໍາສັ່ງຫຼື -r: ທາງເລືອກແຖວຄໍາສັ່ງ. ທາງເລືອກອື່ນຖ້າ
ທ່ານຕ້ອງການທີ່ຈະໄດ້ຮັບທັງຫມົດຂອງ System libraries, ທ່ານສາມາດນໍາໃຊ້ເສັ້ນຄໍາສັ່ງ -pkg:dotnet
ທາງເລືອກ.

OPTIONS


-- ກ່ຽວກັບ
ສະແດງຂໍ້ມູນກ່ຽວກັບ Mono C# compiler

--addmodule:MODULE1[,MODULE2]
ລວມເອົາໂມດູນທີ່ລະບຸໄວ້ໃນການປະກອບຜົນໄດ້ຮັບ. ໂມດູນຖືກສ້າງຂື້ນໂດຍ
ໂທຫາ compiler ດ້ວຍຕົວເລືອກ -target:module

- ກວດ​ສອບ​, -ກວດ​ສອບ+
ຕັ້ງຄ່າຮູບແບບການລວບລວມຄ່າເລີ່ມຕົ້ນເປັນ 'ກວດສອບ'. ນີ້ເຮັດໃຫ້ການປະຕິບັດທາງຄະນິດສາດທັງຫມົດ
ກວດສອບແລ້ວ (ຄ່າເລີ່ມຕົ້ນບໍ່ໄດ້ຖືກເລືອກ).

-ກວດ​ສອບ-
ຕັ້ງໂໝດການລວບລວມຄ່າເລີ່ມຕົ້ນເປັນ 'ບໍ່ໄດ້ເລືອກ'. ນີ້ເຮັດໃຫ້ຄະນິດສາດທັງຫມົດ
ການດໍາເນີນງານບໍ່ໄດ້ເລືອກ (ນີ້ແມ່ນຄ່າເລີ່ມຕົ້ນ).

-clscheck-, -clscheck+
ປິດໃຊ້ງານ ຫຼືເປີດໃຊ້ການກວດສອບຂໍ້ມູນສະເພາະຂອງພາສາທົ່ວໄປ (CLS) (ມັນຖືກເປີດໃຊ້
ໂດຍຄ່າເລີ່ມຕົ້ນ).

ຂໍ້ມູນສະເພາະຂອງພາສາທົ່ວໄປ (CLS) ກໍານົດຊຸດຍ່ອຍທີ່ສາມາດເຮັດວຽກຮ່ວມກັນໄດ້ຂອງປະເພດເປັນ
ເຊັ່ນດຽວກັນກັບສົນທິສັນຍາທີ່ compilers (ຜູ້ຜະລິດ CLS) ແລະນັກພັດທະນາຕ້ອງປະຕິບັດຕາມ
ເປີດເຜີຍລະຫັດໃຫ້ກັບພາສາການຂຽນໂປລແກລມອື່ນ (ຜູ້ບໍລິໂພກ CLS).

-codepage:ID
ລະບຸໜ້າລະຫັດທີ່ໃຊ້ໃນການປະມວນຜົນໄຟລ໌ປ້ອນຂໍ້ມູນຈາກຈຸດທີ່ມັນຢູ່
ລະບຸໄວ້. ໂດຍຄ່າເລີ່ມຕົ້ນໄຟລ໌ຈະຖືກປະມວນຜົນໃນສະພາບແວດລ້ອມທີ່ຂຶ້ນກັບ
ຫນ້າລະຫັດພື້ນເມືອງ. ຜູ້ລວບລວມຂໍ້ມູນຍັງຈະກວດພົບໄຟລ໌ Unicode ໂດຍອັດຕະໂນມັດ
ມີເຄື່ອງຫມາຍ byte ຝັງຢູ່ໃນຕອນຕົ້ນ.

ການເຂົ້າລະຫັດທີ່ນິຍົມອື່ນໆແມ່ນ 28591 (Latin1), 1252 (iso-8859-1) ແລະ 65001 (UTF-8).

MCS ສະຫນັບສະຫນູນສອງສາມຄໍາຫຍໍ້: "utf8" ສາມາດໃຊ້ເພື່ອກໍານົດ utf-8 ແທນ.
ການນໍາໃຊ້ cryptic 65001 ແລະ "ປັບ" ຟື້ນຟູການຈັດການຫນ້າລະຫັດອັດຕະໂນມັດ.
shorthands ເຫຼົ່ານີ້ບໍ່ມີຢູ່ໃນ Microsoft compiler.

- ກໍາ​ນົດ​: SYMLIST​, -d:SYMLIST
ກໍາ​ນົດ​ສັນ​ຍາ​ລັກ​ທີ່​ລະ​ບຸ​ໄວ້​ໂດຍ​ບັນ​ຊີ​ລາຍ​ການ​ເຄິ່ງ​ຈໍ້າ​ສອງ​ເມັດ​ແຍກ​ອອກ SYMLIST SYMBOL​. ນີ້
ສາມາດໄດ້ຮັບການທົດສອບໃນລະຫັດແຫຼ່ງໂດຍ pre-processor, ຫຼືສາມາດຖືກນໍາໃຊ້ໂດຍວິທີການ
ທີ່ຖືກແທັກດ້ວຍຄຸນສົມບັດເງື່ອນໄຂ.

- ແກ້​ໄຂ​ບັນ​ຫາ​, -debug+
ສ້າງຂໍ້ມູນການດີບັກ. ເພື່ອໃຫ້ໄດ້ຮັບການຕິດຕາມ stack ກັບຂໍ້ມູນການດີບັກ,
ທ່ານຕ້ອງການເອີ້ນໃຊ້ mono runtime ດ້ວຍທຸງ '--debug'. ການດີບັກ
ຂໍ້ມູນຖືກເກັບໄວ້ໃນໄຟລ໌ MDB ທີ່ຢູ່ໃນໂຟເດີຜົນຜະລິດດຽວກັນກັບການຜະລິດ
ສະພາແຫ່ງ.

-debug-
ຢ່າສ້າງຂໍ້ມູນການດີບັກ.

-delaysign+
ພຽງແຕ່ຝັງລະຫັດສາທາລະນະຊື່ທີ່ເຂັ້ມແຂງເຂົ້າໃນການປະກອບ. ການລົງນາມຕົວຈິງຈະຕ້ອງເປັນ
ເຮັດໃນຂັ້ນຕອນຕໍ່ມາໂດຍໃຊ້ເຄື່ອງມື SN. ອັນນີ້ເປັນປະໂຫຍດເພື່ອປົກປ້ອງກະແຈສ່ວນຕົວ
ໃນ​ລະ​ຫວ່າງ​ການ​ພັດ​ທະ​ນາ​. ກະລຸນາຮັບຊາບວ່າການເຊັນຊື່ຊັກຊ້າສາມາດເຮັດໄດ້ໂດຍໃຊ້ລະຫັດຊື່ທີ່ເຂັ້ມແຂງເທົ່ານັ້ນ
ໄຟລ໌ (ບໍ່ແມ່ນຖັງກະແຈ). ທາງ​ເລືອກ​ແມ່ນ​ທຽບ​ເທົ່າ​ກັບ​ການ​ປະ​ກອບ​ມີ [assembly​:
AssemblyDelaySign (ຈິງ)] ໃນລະຫັດແຫຼ່ງຂອງທ່ານ. ທາງ​ເລືອກ​ຂອງ​ການ​ສັງ​ລວມ​ມີ​ອັນ​ດັບ​ຫນຶ່ງ​
ຫຼາຍກວ່າຄຸນລັກສະນະ.

- ການ​ຊັກ​ຊ້າ -
ຄ່າເລີ່ມຕົ້ນ. Strongname (ເຊັນ) ການປະກອບໂດຍໃຊ້ໄຟລ໌ລະຫັດຊື່ທີ່ເຂັ້ມແຂງ (ຫຼື
container). ທາງເລືອກແມ່ນທຽບເທົ່າກັບການລວມເອົາ [ປະກອບ: AssemblyDelaySign
(false)] ໃນລະຫັດແຫຼ່ງຂອງທ່ານ. ຕົວເລືອກ Compiler ມີຄວາມສຳຄັນກວ່າຄຸນສົມບັດ.

-doc: ໄຟລ໌
ສະກັດເອກະສານ C#/XML ຈາກລະຫັດແຫຼ່ງ ແລະເກັບຮັກສາໄວ້ໃນທີ່ໃຫ້
ໄຟລ໌.

- ລາຍ​ງານ​ຄວາມ​ຜິດ​ພາດ​
ທຸງນີ້ຖືກລະເລີຍໂດຍ Mono's C# compiler ແລະປະຈຸບັນພຽງແຕ່ອະນຸຍາດໃຫ້ MCS ເປັນ
ໃຊ້ເປັນການທົດແທນ CSC ສໍາລັບ msbuild/xbuild.

--ຕາຍ
ອັນນີ້ໃຊ້ເພື່ອແກ້ບັນຫາຄອມພີວເຊີ. ນີ້ເຮັດໃຫ້ການປ່ອຍອາຍພິດຄວາມຜິດພາດສ້າງ
ຂໍ້ຍົກເວັ້ນທີ່ສາມາດຈັບໄດ້ໂດຍດີບັກ.

- ການຈັດໄຟລ໌
ທຸງນີ້ຖືກລະເລີຍໂດຍ Mono's C# compiler ແລະປະຈຸບັນພຽງແຕ່ອະນຸຍາດໃຫ້ MCS ເປັນ
ໃຊ້ເປັນການທົດແທນ CSC ສໍາລັບ msbuild/xbuild.

- ເຕັມເສັ້ນທາງ
ຂໍ້ຜິດພາດຂອງລະຫັດແຫຼ່ງໃດໆຫຼືຄໍາເຕືອນທີ່ອອກໂດຍ compiler ປະກອບມີຊື່ໄຟລ໌ພຽງແຕ່ໂດຍ
ຄ່າເລີ່ມຕົ້ນ. ຕົວເລືອກນີ້ເຮັດໃຫ້ compiler ອອກເສັ້ນທາງໄຟລ໌ຢ່າງແທ້ຈິງແທນ.

-keyfile:KEYFILE
Strongname (ເຊັນ) ການປະກອບຜົນຜະລິດໂດຍໃຊ້ຄູ່ທີ່ສໍາຄັນທີ່ມີຢູ່ໃນທີ່ກໍານົດໄວ້
ໄຟລ໌ລະຫັດຊື່ທີ່ເຂັ້ມແຂງ (snk). ຄູ່ຄີເຕັມແມ່ນຕ້ອງການຕາມຄ່າເລີ່ມຕົ້ນ (ຫຼືໃນເວລາໃຊ້
ການຊັກຊ້າ -). ໄຟລ໌ທີ່ມີພຽງແຕ່ກະແຈສາທາລະນະສາມາດໃຊ້ກັບ delaysign+ ໄດ້. ໄດ້
ທາງ​ເລືອກ​ແມ່ນ​ເທົ່າ​ກັບ​ການ​ລວມ [assembly: AssemblyKeyFile ("KEYFILE")] ໃນ​ຂອງ​ທ່ານ
ລະຫັດແຫຼ່ງ. ຕົວເລືອກ Compiler ມີຄວາມສຳຄັນກວ່າຄຸນສົມບັດ.

-keycontainer:CONTAINER
Strongname (ເຊັນ) ການປະກອບຜົນຜະລິດໂດຍໃຊ້ຄູ່ທີ່ສໍາຄັນທີ່ມີຢູ່ໃນທີ່ກໍານົດໄວ້
ບັນຈຸ. ກະລຸນາຮັບຊາບວ່າເຄື່ອງໝາຍການຊັກຊ້າ+ ແມ່ນຖືກລະເລີຍເມື່ອໃຊ້ກ່ອງບັນຈຸຫຼັກ. ທາງເລືອກແມ່ນ
ທຽບເທົ່າກັບການລວມ [ປະກອບ: AssemblyKeyName ("CONTAINER")] ໃນແຫຼ່ງຂອງທ່ານ
ລະຫັດ. ຕົວເລືອກ Compiler ມີຄວາມສຳຄັນກວ່າຄຸນສົມບັດ.

-langversion:TEXT
ທາງ​ເລືອກ​ລະ​ບຸ​ສະ​ບັບ​ພາ​ສາ​ທີ່​ຈະ​ນໍາ​ໃຊ້​. ຄຸນນະສົມບັດທີ່ກໍານົດໄວ້ແມ່ນ
ແຕກຕ່າງກັນໃນແຕ່ລະລຸ້ນ C#. ສະວິດນີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອບັງຄັບໃຫ້ compiler
ອະນຸຍາດໃຫ້ພຽງແຕ່ຊຸດຍ່ອຍຂອງລັກສະນະ. ຄ່າທີ່ເປັນໄປໄດ້ແມ່ນ:

ມາດຕະຖານ
ແນະ​ນໍາ compiler ການ​ນໍາ​ໃຊ້​ສະ​ບັບ​ຫລ້າ​ສຸດ​. ທຽບເທົ່າແມ່ນການຍົກເລີກ
ສະຫຼັບ (ປະຈຸບັນນີ້ຄ່າເລີ່ມຕົ້ນເປັນພາສາສະເພາະ C# 4.0).

ISO-1 ຈໍາກັດການລວບລວມຂໍ້ມູນໃຫ້ໃຊ້ຄຸນສົມບັດມາດຕະຖານ ISO ທໍາອິດເທົ່ານັ້ນ. ການ​ນໍາ​ໃຊ້​ຂອງ​
ລັກສະນະເຊັ່ນ: ທົ່ວໄປ, ຫ້ອງຮຽນສະຖິດ, ວິທີການທີ່ບໍ່ເປີດເຜີຍຊື່ຈະນໍາໄປສູ່
ຜິດພາດ.

ISO-2 ຈໍາກັດການລວບລວມຂໍ້ມູນໃຫ້ໃຊ້ຄຸນສົມບັດມາດຕະຖານ ISO ທີສອງເທົ່ານັ້ນ. ນີ້
ອະນຸຍາດໃຫ້ໃຊ້ generics, static classes, iterators ແລະວິທີການທີ່ບໍ່ເປີດເຜີຍຊື່
ຍົກ​ຕົວ​ຢ່າງ.

3 ຈໍາ​ກັດ compiler ໃຫ້​ນໍາ​ໃຊ້​ພຽງ​ແຕ່​ຄຸນ​ສົມ​ບັດ​ທີ່​ມີ​ຢູ່​ໃນ C# 3.0 (a
superset ຂອງ ISO-1 ແລະ ISO-2).

4 ຈໍາ​ກັດ compiler ໃຫ້​ນໍາ​ໃຊ້​ພຽງ​ແຕ່​ຄຸນ​ສົມ​ບັດ​ທີ່​ມີ​ຢູ່​ໃນ C# 4.0
ຂໍ້ ກຳ ນົດ.

ທົດລອງ
ເປີດໃຊ້ຄຸນສົມບັດທີ່ບໍ່ສະຖຽນຈາກພາສາລຸ້ນທີ່ຈະມາເຖິງ.

ສັງເກດເຫັນວ່າທຸງນີ້ຈໍາກັດພຽງແຕ່ລັກສະນະພາສາທີ່ມີໃຫ້
ໂປລແກລມ. ຮຸ່ນຂອງອຸປະກອນທີ່ຜະລິດສາມາດຄວບຄຸມໄດ້ໂດຍໃຊ້ SDK ທາງເລືອກ.

-lib:PATHLIST
ແຕ່ລະເສັ້ນທາງທີ່ລະບຸໄວ້ໃນລາຍການທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດຈະຊີ້ໃຫ້ຜູ້ສັງລວມເບິ່ງ
ສໍາລັບຫ້ອງສະຫມຸດໃນເສັ້ນທາງທີ່ກໍານົດນັ້ນ.

-L PATH
ຊີ້ບອກຜູ້ລວບລວມຂໍ້ມູນເພື່ອຊອກຫາຫ້ອງສະຫມຸດໃນເສັ້ນທາງທີ່ກໍານົດ. ຫຼາຍເສັ້ນທາງ
ສາມາດໄດ້ຮັບການສະຫນອງໃຫ້ໂດຍການນໍາໃຊ້ທາງເລືອກຫຼາຍຄັ້ງ.

- ຕົ້ນ​ຕໍ​: CLASS​
ບອກ compiler ທີ່ CLASS ມີຈຸດເຂົ້າ. ເປັນປະໂຫຍດໃນເວລາທີ່ທ່ານມີ
ລວບລວມຫ້ອງຮຽນຫຼາຍໆຢ່າງດ້ວຍວິທີຫຼັກ.

-nostdlib, -nostdlib+
ໃຊ້ທຸງນີ້ຖ້າທ່ານຕ້ອງການລວບລວມຫ້ອງສະຫມຸດຫຼັກ. ນີ້ເຮັດໃຫ້ compiler ໄດ້
ໂຫຼດປະເພດພາຍໃນຂອງມັນຈາກການປະກອບທີ່ຖືກລວບລວມ.

- noconfig​, -noconfig+
ປິດໃຊ້ງານການຕັ້ງຄ່າຄອມພີວເຊີເລີ່ມຕົ້ນທີ່ຈະໂຫລດ. compiler ໂດຍຄ່າເລີ່ມຕົ້ນ
ມີການອ້າງອີງເຖິງການປະກອບລະບົບ.

-nowarn: ເຕືອນ
ເຮັດໃຫ້ຄອມພີວເຕີບໍ່ສົນໃຈຄໍາເຕືອນທີ່ລະບຸໄວ້ໃນລາຍການທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ WARNLIST>

- ປັບ​ໃຫ້​ເຫມາະ​ສົມ​, - optimize+, - optimize-
ຄວບຄຸມການເພີ່ມປະສິດທິພາບການສ້າງລະຫັດ compiler ໃນລະຫັດ. ການນໍາໃຊ້ -optimize ຫຼື
-optimize+ ຈະເປີດການເພີ່ມປະສິດທິພາບ, -optimize- ຈະປິດມັນ. ຄ່າເລີ່ມຕົ້ນໃນ
mcs ແມ່ນເພື່ອເພີ່ມປະສິດທິພາບ-. ທາງເລືອກສາມາດໄດ້ຮັບການປະສົມກັບ -debug ແຕ່ສໍາລັບການ debugging ທີ່ດີທີ່ສຸດ
ປະສົບການມັນຖືກແນະນໍາໃຫ້ອອກຈາກທາງເລືອກ.

-ອອກ:FNAME, -o FNAME
ຕັ້ງຊື່ໄຟລ໌ຜົນຜະລິດທີ່ຈະສ້າງຂຶ້ນ.

--parse
ນໍາໃຊ້ສໍາລັບການ benchmarking. compiler ຈະວິເຄາະພຽງແຕ່ໄຟລ໌ປ້ອນຂໍ້ມູນຂອງມັນ.

-pkg:package1[,packageN]
ການປະກອບເອກະສານອ້າງອີງສໍາລັບຊຸດທີ່ໃຫ້.

compiler ຈະເອີ້ນ pkg-config --libs ໃນຊຸດຂອງຊຸດທີ່ລະບຸໄວ້ໃນ
ເສັ້ນຄໍາສັ່ງທີ່ຈະໄດ້ຮັບຫ້ອງສະຫມຸດແລະໄດເລກະທໍລີເພື່ອລວບລວມລະຫັດ.

ໂດຍປົກກະຕິນີ້ແມ່ນໃຊ້ກັບອົງປະກອບຂອງພາກສ່ວນທີສາມ, ເຊັ່ນນີ້:

$ mcs -pkg:gtk-sharp demo.cs

-pkg: dotnet
ນີ້ຈະສັ່ງໃຫ້ compiler ອ້າງອີງເຖິງ System.* libraries
ມີຢູ່ໃນການຕິດຕັ້ງກອບ dotnet ປົກກະຕິ, ສັງເກດເຫັນວ່າມັນເຮັດໄດ້
ບໍ່ລວມເອົາຫ້ອງສະໝຸດ Mono ທັງໝົດ, ມີແຕ່ລະບົບ.* ເທົ່ານັ້ນ. ນີ້​ແມ່ນ
ທາງລັດສະດວກສໍາລັບລະຫັດ porting ເຫຼົ່ານັ້ນ.

- ເວທີ: ARCH
ໃຊ້ເພື່ອກໍານົດເວທີເປົ້າຫມາຍ. ຄ່າທີ່ເປັນໄປໄດ້ແມ່ນ: anycpu,
anycpu32bit preferred, ແຂນ, x86, x64 ຫຼື itanium. ທາງເລືອກເລີ່ມຕົ້ນແມ່ນ anycpu.

-ຊັບພະຍາກອນ:RESOURCE[,ID]
ຝັງຢູ່ໃນໄຟລ໌ຊັບພະຍາກອນທີ່ໃຫ້. ID ທາງເລືອກສາມາດຖືກນໍາໃຊ້ເພື່ອໃຫ້ຄວາມແຕກຕ່າງ
ຊື່ກັບຊັບພະຍາກອນ. ຖ້າບໍ່ໄດ້ລະບຸ, ຊື່ຊັບພະຍາກອນຈະເປັນຊື່ໄຟລ໌.

-linkresource:RESOURCE[,ID]
ລິ້ງໄປຫາ RESOURCE ທີ່ລະບຸ. ID ທາງ​ເລືອກ​ສາ​ມາດ​ໄດ້​ຮັບ​ການ​ນໍາ​ໃຊ້​ເພື່ອ​ໃຫ້​ຊື່​ກັບ​
ຊັບພະຍາກອນທີ່ເຊື່ອມໂຍງ.

-r:ASSEMBLY1[,ASSEMBLY2], - ອ້າງ​ອີງ​ ASSEMBLY1[,ASSEMBLY2]
ອ້າງເຖິງສະພາແຫ່ງທີ່ມີຊື່. ໃຊ້ນີ້ເພື່ອໃຊ້ຫ້ອງຮຽນຈາກສະພາແຫ່ງຊື່ໃນ
ໂຄງການຂອງທ່ານ. ການປະກອບຈະຖືກໂຫລດຈາກລະບົບໄດເລກະທໍລີທີ່
ສະພາແຫ່ງທັງຫມົດດໍາລົງຊີວິດ, ຫຼືຈາກເສັ້ນທາງທີ່ໃຫ້ຢ່າງຊັດເຈນກັບທາງເລືອກ -L.

ທ່ານຍັງສາມາດໃຊ້ເຄື່ອງໝາຍຈຸດເພື່ອແຍກການປະກອບຕ່າງໆແທນເຄື່ອງໝາຍຈຸດໄດ້.

-reference:ALIAS=ASSEMBLY
ສະຫນັບສະຫນູນການອ້າງອິງນາມແຝງພາຍນອກສໍາລັບ C#.

ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ມີ​ປະ​ກອບ​ທີ່​ແຕກ​ຕ່າງ​ກັນ​ທີ່​ສະ​ຫນອງ​ປະ​ເພດ​ດຽວ​ກັນ​, ນາມ​ແຝງ​ພາຍ​ນອກ​
ສະຫນັບສະຫນູນອະນຸຍາດໃຫ້ທ່ານສະຫນອງຊື່ທີ່ຊອບແວຂອງທ່ານສາມາດນໍາໃຊ້ເພື່ອບອກເຫຼົ່ານັ້ນ
ນອກ. ປະເພດຈາກ ASSEMBLY ຈະຖືກເປີດເຜີຍເປັນ ALIAS, ຫຼັງຈາກນັ້ນຢູ່ໃນແຫຼ່ງ C#
ລະຫັດ, ທ່ານຈໍາເປັນຕ້ອງເຮັດ:

ນາມແຝງພາຍນອກ ALIAS;
ເພື່ອເອົາມັນເຂົ້າໄປໃນ namespace ຂອງທ່ານ. ຕົວຢ່າງ, ເພື່ອຮັບມືກັບສອງຫ້ອງສະຫມຸດຮູບພາບ
ທີ່ກໍານົດ "Graphics.Point", ຫນຶ່ງໃນ "OpenGL.dll" ແລະຫນຶ່ງໃນ "Postscript.dll", ທ່ານ.
ຈະເອີ້ນ compiler ແບບນີ້:

mcs -r:Postscript=Postscript.dll -r:OpenGL=OpenGL.dll

ແລະໃນລະຫັດແຫຼ່ງຂອງເຈົ້າ, ເຈົ້າຈະຂຽນ:

ນາມແຝງພາຍນອກ Postscript;
ນາມແຝງພາຍນອກ OpenGL;

ຊັ້ນ X {
// ນີ້ແມ່ນ Graphics.Point ຈາກ Postscrip.dll
Postscript.Point p = new Postscript.Point();

// ນີ້ແມ່ນ Graphics.Point ຈາກ OpenGL.dll
OpenGL.Point p = new OpenGL.Point();
}

-recurse​: ຮູບ​ແບບ​, -- ຊ້ຳ PATTERN
ມີການລວບລວມ recursive ໂດຍໃຊ້ຮູບແບບທີ່ລະບຸ. ໃນ Unix ແກະຈະ
ດໍາເນີນການ globbing, ດັ່ງນັ້ນທ່ານອາດຈະຕ້ອງການໃຊ້ມັນເຊັ່ນນີ້:

$ mcs -recurse:'*.cs'

-sdk:VERSION
ໃຊ້ເພື່ອລະບຸເວີຊັນຂອງ Base Class Library ທີ່ໃຊ້ໃນການລວບລວມຂໍ້ມູນ.
ຕໍ່​ໄປ​ນີ້​ຄ່າ​ທີ່​ກໍາ​ນົດ​ໄວ້​ລ່ວງ​ຫນ້າ​ແມ່ນ​ຖືກ​ຕ້ອງ​: 2​, 4 (ຄ່າ​ເລີ່ມ​ຕົ້ນ​) ເຊັ່ນ​ດຽວ​ກັນ​ກັບ​ຄ່າ​ທີ່​ກໍາ​ນົດ​ເອງ​ໃດໆ​.
ໝາຍເລກເວີຊັນທີ່ກຳນົດໄວ້ລ່ວງໜ້າ ໝາຍເຖິງຄ່າກຳນົດເອງທີ່ກຳນົດໄວ້ mcs ຈະພະຍາຍາມ
ຊອກຫາຫ້ອງສະຫມຸດ Base Class ໃນສະຖານທີ່ທີ່ຕິດຕັ້ງ mono PREFIX/lib/mono/ .

--ແກະ
ເລີ່ມຕົ້ນການລວບລວມຂໍ້ມູນໃນຮູບແບບໂຕ້ຕອບ, ສະຫນອງ C# shell ສໍາລັບຄໍາຖະແຫຼງແລະ
ການສະແດງອອກ. ທາງລັດແມ່ນການໃຊ້ cshharp ຄໍາສັ່ງໂດຍກົງ.

-- stacktrace
ສ້າງການຕິດຕາມ stack ໃນເວລາລາຍງານຂໍ້ຜິດພາດ, ເປັນປະໂຫຍດສໍາລັບການດີບັກ
ນັກຂຽນ.

- ເປົ້າ​ຫມາຍ​: ປະ​ເພດ​, -t: ປະເພດ
ໃຊ້ເພື່ອລະບຸເປົ້າໝາຍທີ່ຕ້ອງການ. ຄ່າທີ່ເປັນໄປໄດ້ແມ່ນ: exe (ທໍາມະດາ
executable), winexe (Windows.Forms executable), ຫ້ອງສະຫມຸດ (ຫ້ອງສະຫມຸດອົງປະກອບ) ແລະ
ໂມດູນ (ຫ້ອງສະຫມຸດບາງສ່ວນ).

--ສະແຕມເວລາ
ທຸງການດີບັກອື່ນ. ໃຊ້ເພື່ອສະແດງເວລາຢູ່ໃນຈຸດຕ່າງໆ
ຂະບວນການລວບລວມ.

- ບໍ່​ປອດ​ໄພ​, -ບໍ່ປອດໄພ+
ເປີດໃຊ້ການລວບລວມລະຫັດທີ່ບໍ່ປອດໄພ.

-v ການດີບັກ. ເປີດໃຊ້ການວິເຄາະ verbose yacc.

- ການປ່ຽນແປງ
ສະແດງສະບັບ compiler.

- ເຕືອນ​ໄພ​, -warnaserror+
ຄໍາເຕືອນຜູ້ລວບລວມຂໍ້ມູນທັງຫມົດຈະຖືກລາຍງານເປັນຂໍ້ຜິດພາດ.

-warnaserror:W1,[Wn], -warnaserror+:W1,[Wn]
ປະຕິບັດຕໍ່ຫນຶ່ງຫຼືຫຼາຍຄໍາເຕືອນ compiler ເປັນຄວາມຜິດພາດ.

-warnaserror-:W1,[Wn]
ກໍານົດຫນຶ່ງຫຼືຫຼາຍຄໍາເຕືອນ compiler ຈະຖືກຂົ່ມຂູ່ສະເຫມີເປັນຄໍາເຕືອນ. ກາຍເປັນ
ເປັນປະໂຫຍດເມື່ອໃຊ້ຮ່ວມກັນກັບ -warnaserror.

- ເຕືອນ: ລະດັບ
ກໍານົດລະດັບການເຕືອນໄພ. 0 ແມ່ນລະດັບເຕືອນໄພຕໍ່າສຸດ, ແລະ 4 ແມ່ນສູງສຸດ. ໄດ້
ຄ່າເລີ່ມຕົ້ນແມ່ນ 4.

-win32res: ໄຟລ໌
ລະບຸໄຟລ໌ຊັບພະຍາກອນ Win32 (.res) ທີ່ຈະຖືກມັດເຂົ້າໃນການປະກອບຜົນໄດ້ຮັບ.

-win32icon: ໄຟລ໌
ແນບໄອຄອນທີ່ລະບຸໄວ້ໃນ FILE ຢູ່ໃນຜົນຜະລິດເຂົ້າໃນການປະກອບຜົນໄດ້ຮັບ.

-- ໃຊ້ອັນນີ້ເພື່ອຢຸດການວິເຄາະທາງເລືອກ, ແລະອະນຸຍາດໃຫ້ຜ່ານຕົວກໍານົດການເບິ່ງທາງເລືອກ
ຢູ່ໃນເສັ້ນຄໍາສັ່ງ.

ກະເປົາ ແລະ ໜັງ ສື


ເມື່ອອ້າງເຖິງການປະກອບ, ຖ້າຊື່ຂອງສະພາແຫ່ງເປັນເສັ້ນທາງ, ຜູ້ລວບລວມຈະພະຍາຍາມ
ເພື່ອໂຫຼດການປະກອບທີ່ລະບຸໄວ້ໃນເສັ້ນທາງ. ຖ້າມັນບໍ່, ຫຼັງຈາກນັ້ນ compiler ຈະພະຍາຍາມ
loading ປະກອບຈາກໄດເລກະທໍລີປະຈຸບັນ, ໄດເລກະທໍລີພື້ນຖານຂອງ compiler ແລະຖ້າຫາກວ່າ
ບໍ່ພົບການປະກອບຢູ່ໃນບ່ອນໃດບ່ອນນຶ່ງໃນໄດເລກະທໍລີທີ່ລະບຸໄວ້ເປັນການໂຕ້ຖຽງ
the -lib: ການໂຕ້ຖຽງຄໍາສັ່ງ.

compiler ໃຊ້ເສັ້ນທາງຫ້ອງສະຫມຸດເພື່ອຊອກຫາຫ້ອງສະຫມຸດ, ແລະສາມາດອ້າງອີງຫ້ອງສະຫມຸດໄດ້
ຈາກຊຸດສະເພາະຫາກໄດເລກະທໍລີນັ້ນຖືກໃຊ້. ເພື່ອ​ງ່າຍ​ການ​ນໍາ​ໃຊ້​ຂອງ​ການ​ຫຸ້ມ​ຫໍ່​, ໄດ້​
C# compiler ປະກອບມີ -pkg: ທາງເລືອກແຖວຄໍາສັ່ງທີ່ຖືກນໍາໃຊ້ເພື່ອໂຫລດສະເພາະ
ການ​ເກັບ​ກໍາ​ຫ້ອງ​ສະ​ຫມຸດ​.

ຫ້ອງສະຫມຸດທີ່ສັງເກດເຫັນໂດຍ compiler ແມ່ນເກັບຮັກສາໄວ້ທີ່ກ່ຽວຂ້ອງກັບຄໍານໍາຫນ້າການຕິດຕັ້ງພາຍໃຕ້
PREFIX/lib/mono/ ເອີ້ນວ່າ PACKAGEBASE ແລະຄ່າເລີ່ມຕົ້ນຂອງ mcs, gmcs ແລະ smcs ແມ່ນເປັນ.
ຕໍ່ໄປນີ້:

mcs ອ້າງອີງໃສ່ໄດເລກະທໍລີ PACKAGEBASE/1.0

gmcs ອ້າງອີງໃສ່ໄດເລກະທໍລີ PACKAGEBASE/2.0

smcs ອ້າງອີງໃສ່ໄດເລກະທໍລີ PACKAGEBASE/2.1

ເຫຼົ່ານີ້ແມ່ນໂປຣໄຟລ runtime ເທົ່ານັ້ນທີ່ມີຢູ່. ເຖິງແມ່ນວ່າໄດເລກະທໍລີອື່ນໆມີຢູ່ (ເຊັ່ນ
3.0 ແລະ 3.5) ເຫຼົ່ານັ້ນບໍ່ແມ່ນໂປຣໄຟລ runtime ແທ້ໆ, ພວກເຂົາແມ່ນພຽງແຕ່ຕົວຍຶດສໍາລັບພິເສດ
ຫໍສະໝຸດທີ່ສ້າງຂຶ້ນບົນພື້ນຖານ 2.0.

ຜູ້ໃຫ້ບໍລິການຊອບແວຈະແຈກຢາຍຊອບແວທີ່ຕິດຕັ້ງທີ່ກ່ຽວຂ້ອງກັບ PACKAGEBASE
ໄດເລກະທໍລີ. ນີ້ແມ່ນປະສົມປະສານເຂົ້າໃນ gacutil ເຄື່ອງມືທີ່ບໍ່ພຽງແຕ່ຕິດຕັ້ງສາທາລະນະ
assemblies ເຂົ້າໄປໃນ Global Assembly Cache (GAC) ແຕ່ຍັງຕິດຕັ້ງພວກມັນເຂົ້າໄປໃນ
PACKAGEBASE/PKG directory (ທີ່ PKG ແມ່ນຊື່ທີ່ສົ່ງໄປຫາ -package flag ກັບ gacutil).

ໃນຖານະເປັນນັກພັດທະນາ, ຖ້າທ່ານຕ້ອງການບໍລິໂພກຫ້ອງສະຫມຸດ Gtk#, ທ່ານຈະເອີ້ນ compiler.
ເຊັ່ນນີ້:

$ mcs -pkg:gtk-sharp-2.0 main.cs

ຕົວເລືອກ -pkg: ແນະນຳໃຫ້ compiler ເອົາຄຳນິຍາມຂອງ gtk-sharp-2.0 ຈາກ
pkg-config, ນີ້ແມ່ນເທົ່າກັບການສົ່ງຕໍ່ C# compiler ຜົນຜະລິດຂອງ:

$ pkg-config --libs gtk-sharp-2.0

ໂດຍປົກກະຕິແລ້ວນີ້ພຽງແຕ່ອ້າງອີງເຖິງຫ້ອງສະໝຸດຈາກ PACKAGEBASE/PKG.

ເຖິງແມ່ນວ່າມີຊື່ໄດເລກະທໍລີສໍາລັບ 3.0 ແລະ 3.5, ນັ້ນບໍ່ໄດ້ຫມາຍຄວາມວ່າມີ 3.0.
ແລະ 3.5 ສະບັບ compiler ຫຼືໂປຣໄຟລ໌. ເຫຼົ່ານີ້ແມ່ນພຽງແຕ່ຫ້ອງສະຫມຸດໃຫມ່ທີ່ຈະຕ້ອງມີ
ອ້າງອິງດ້ວຍຕົນເອງດ້ວຍ -pkg: invocation, ຫຼືໂດຍການອ້າງອີງເຖິງ
ຫ້ອງສະຫມຸດໂດຍກົງ.

ພິເສດ ນິຍາມ


ໄດ້ TRACE ແລະ ດີບັກ ຄໍານິຍາມມີຄວາມຫມາຍພິເສດຕໍ່ຜູ້ລວບລວມຂໍ້ມູນ.

ໂດຍຄ່າເລີ່ມຕົ້ນການໂທໄປຫາວິທີການ ແລະຄຸນສົມບັດໃນຫ້ອງຮຽນ System.Diagnostics.Trace ບໍ່ແມ່ນ
ສ້າງຂຶ້ນເວັ້ນເສຍແຕ່ວ່າສັນຍາລັກ TRACE ຖືກກໍານົດ (ບໍ່ວ່າຈະຜ່ານ "#define TRACE") ໃນຂອງທ່ານ
ລະຫັດແຫຼ່ງ, ຫຼືໂດຍການນໍາໃຊ້ -- ກໍານົດ TRACE ໃນເສັ້ນຄໍາສັ່ງ.

ໂດຍຄ່າເລີ່ມຕົ້ນການໂທໄປຫາວິທີການ ແລະຄຸນສົມບັດໃນຫ້ອງຮຽນ System.Diagnostics.Debug ບໍ່ແມ່ນ
ສ້າງຂຶ້ນເວັ້ນເສຍແຕ່ສັນຍາລັກ DEBUG ຖືກກໍານົດ (ບໍ່ວ່າຈະຜ່ານ "#define DEBUG") ໃນຂອງທ່ານ
ລະຫັດແຫຼ່ງ, ຫຼືໂດຍການນໍາໃຊ້ -- ກໍານົດ ດີບັກ ໃນເສັ້ນຄໍາສັ່ງ.

ໃຫ້ສັງເກດວ່າຜົນກະທົບຂອງການກໍານົດ TRACE ແລະ DEBUG ແມ່ນການຕັ້ງຄ່າທົ່ວໂລກ, ເຖິງແມ່ນວ່າພວກມັນແມ່ນ
ກໍານົດພຽງແຕ່ຢູ່ໃນໄຟລ໌ດຽວ.

ກຳ ລັງດີບັກ ສະຫນັບສະຫນູນ


ເມື່ອໃຊ້ທຸງ "-debug", MCS ຈະສ້າງໄຟລ໌ທີ່ມີນາມສະກຸນ .mdb ນັ້ນ
ປະກອບດ້ວຍຂໍ້ມູນການດີບັກສໍາລັບການປະກອບທີ່ສ້າງຂຶ້ນ. ໄຟລ໌ນີ້ຖືກບໍລິໂພກໂດຍ
Mono debugger (mdb).

ENVIRONMENT ຄວາມຮັບຜິດຊອບ


MCS_COLORS
ຖ້າຕົວແປນີ້ຖືກຕັ້ງ, ມັນມີສະຕຣິງໃນຮູບແບບ "ທາງຫນ້າ, ພື້ນຫລັງ"
ທີ່ລະບຸວ່າຈະໃຊ້ສີໃດເພື່ອສະແດງຂໍ້ຜິດພາດໃນບາງຈຸດ.

ພື້ນຫຼັງແມ່ນເປັນທາງເລືອກ ແລະເປັນຄ່າເລີ່ມຕົ້ນຂອງພື້ນຫຼັງປັດຈຸບັນຂອງເຄື່ອງຈ່າຍເງິນ. ໄດ້
ສີທີ່ເປັນໄປໄດ້ສໍາລັບ foreground ແມ່ນ: ສີດໍາ, ສີແດງ, ສີ​ແດງ​ສົດ​ໃສ, ສີຂຽວ, ສີຂຽວສົດໃສ,
ສີເຫຼືອງ, ສີ​ເຫຼືອງ​ສົດ​ໃສ​, ສີຟ້າ, ສີຟ້າສົດໃສ, ສີມ່ວງແດງ, ສີມ່ວງແດງ, ສີຟ້າສີຟ້າ, ສີສົດໃສ,
ສີເທົາ, ສີຂາວ ແລະສີຂາວສົດໃສ.

ສີທີ່ເປັນໄປໄດ້ສໍາລັບພື້ນຫລັງແມ່ນ: ສີດໍາ, ສີແດງ, ສີຂຽວ, ສີເຫຼືອງ, ສີຟ້າ, magenta,
ສີຟ້າຂຽວ, ສີເທົາ ແລະສີຂາວ.

ຕົວຢ່າງ, ທ່ານສາມາດກໍານົດຕົວແປເຫຼົ່ານີ້ຈາກ shell ຂອງທ່ານ:
ສົ່ງອອກ MCS_COLORS
MCS_COLORS=errors=ສີຂາວ,ສີແດງ

ທ່ານ​ສາ​ມາດ​ປິດ​ການ​ທໍາ​ງານ​ໂຄງ​ການ​ສີ​ໃນ​ຕົວ​ໂດຍ​ການ​ຕັ້ງ​ຕົວ​ປ່ຽນ​ນີ້​ເປັນ "ປິດ​ການ​ທໍາ​ງານ​"​.

ຫມາຍເຫດ


ໃນລະຫວ່າງການລວບລວມຂໍ້ມູນ MCS compiler ກໍານົດສັນຍາລັກ __MonoCS__, ນີ້ສາມາດຖືກນໍາໃຊ້ໂດຍ
ຄໍາແນະນໍາທາງສ່ວນຫນ້າຂອງໂປເຊດເຊີເພື່ອລວບລວມລະຫັດສະເພາະ Mono C# compiler. ກະລຸນາສັງເກດວ່າ
ສັນຍາລັກນີ້ແມ່ນພຽງແຕ່ການທົດສອບສໍາລັບ compiler, ແລະບໍ່ເປັນປະໂຫຍດທີ່ຈະຈໍາແນກການລວບລວມ
ຫຼື​ເວ​ທີ​ການ​ນໍາ​ໃຊ້​.

AUTHORS


Mono C# Compiler ຖືກຂຽນໂດຍ Miguel de Icaza, Ravi Pratap, Martin Baulig, Marek
Safar ແລະ Raja Harinath. ການພັດທະນາດັ່ງກ່າວໄດ້ຮັບທຶນຈາກ Ximian, Novell ແລະ Marek Safar.

ໃຊ້ dmcs ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net



ລ່າສຸດ Linux ແລະ Windows ໂຄງການອອນໄລນ໌