ນີ້ແມ່ນຄໍາສັ່ງ 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