GoGPT Best VPN GoSearch

OnWorks favicon

ocamlc.opt - ອອນລາຍໃນຄລາວ

ເປີດໃຊ້ ocamlc.opt ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີຜ່ານ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

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

ໂຄງການ:

NAME


ocamlc - ຕົວລວບລວມ bytecode OCaml

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


ocamlc [ ທາງເລືອກໃນການ ] ຊື່​ເອ​ກະ​ສານ ...

ocamlc.opt [ ທາງເລືອກໃນການ ] ຊື່​ເອ​ກະ​ສານ ...

ລາຍລະອຽດ


OCaml bytecode compiler ocamlc(1) ລວບລວມໄຟລ໌ແຫຼ່ງ OCaml ເພື່ອ bytecode ໄຟລ໌ວັດຖຸ
ແລະເຊື່ອມຕໍ່ໄຟລ໌ວັດຖຸເຫຼົ່ານີ້ເພື່ອຜະລິດໄຟລ໌ປະຕິບັດການ bytecode ດ່ຽວ. ເຫຼົ່ານີ້
ຫຼັງຈາກນັ້ນ, ໄຟລ໌ທີ່ສາມາດປະຕິບັດໄດ້ແມ່ນດໍາເນີນການໂດຍນາຍພາສາ bytecode ocamlrun(1).

ໄດ້ ocamlc(1) ຄໍາ​ສັ່ງ​ມີ​ການ​ໂຕ້​ຕອບ​ແຖວ​ຄໍາ​ສັ່ງ​ທີ່​ຄ້າຍ​ຄື​ກັນ​ກັບ​ຫນຶ່ງ​ຂອງ​ຄອມ​ພິວ​ເຕີ C ຫຼາຍ​ທີ່​ສຸດ​.
ມັນຍອມຮັບຫຼາຍປະເພດຂອງການໂຕ້ຖຽງແລະປະມວນຜົນພວກມັນຕາມລໍາດັບ:

ອາກິວເມັນທີ່ລົງທ້າຍດ້ວຍ .mli ຖືກນໍາໄປເປັນໄຟລ໌ຕົ້ນສະບັບສໍາລັບສ່ວນຕິດຕໍ່ຂອງຫນ່ວຍງານການລວບລວມ.
ການໂຕ້ຕອບລະບຸຊື່ທີ່ສົ່ງອອກໂດຍຫນ່ວຍງານລວບລວມ: ພວກເຂົາປະກາດຊື່ມູນຄ່າດ້ວຍ
ປະເພດຂອງເຂົາເຈົ້າ, ກໍານົດປະເພດຂໍ້ມູນສາທາລະນະ, ປະກາດປະເພດຂໍ້ມູນທີ່ບໍ່ມີຕົວຕົນ, ແລະອື່ນໆ. ຈາກ
ເອກະສານ x.mli, ໄດ້ ocamlc(1) compiler ຜະລິດການໂຕ້ຕອບທີ່ລວບລວມຢູ່ໃນໄຟລ໌ x.cmi.

ອາກິວເມັນທີ່ລົງທ້າຍດ້ວຍ .ml ຖືກນຳໄປເປັນໄຟລ໌ຕົ້ນສະບັບສຳລັບການຈັດຕັ້ງປະຕິບັດຫົວໜ່ວຍການລວບລວມ.
ການຈັດຕັ້ງປະຕິບັດໃຫ້ຄໍານິຍາມສໍາລັບຊື່ທີ່ສົ່ງອອກໂດຍຫນ່ວຍງານ, ແລະຍັງມີ
ການສະແດງອອກທີ່ຈະໄດ້ຮັບການປະເມີນສໍາລັບຜົນກະທົບຂ້າງຄຽງຂອງເຂົາເຈົ້າ. ຈາກໄຟລ໌ x.ml, ໄດ້ ocamlc(1​)
compiler ຜະລິດ bytecode ວັດຖຸທີ່ລວບລວມຢູ່ໃນໄຟລ໌ x.cmo.

ຖ້າໄຟລ໌ການໂຕ້ຕອບ x.mli ມີ, ການປະຕິບັດ x.ml ຖືກກວດທຽບກັບ
ການໂຕ້ຕອບທີ່ລວບລວມທີ່ສອດຄ້ອງກັນ x.cmi, ເຊິ່ງສົມມຸດວ່າມີຢູ່. ຖ້າບໍ່ມີການໂຕ້ຕອບ x.ມລີ
ແມ່ນສະຫນອງໃຫ້, ການລວບລວມຂອງ x.ml ຜະລິດໄຟລ໌ການໂຕ້ຕອບທີ່ລວບລວມ x.cmi ນອກຈາກນັ້ນ
ໄປຫາໄຟລ໌ລະຫັດວັດຖຸທີ່ລວບລວມ x.cmo. ໄຟລ໌ x.cmi ທີ່ຜະລິດກົງກັນກັບ
ການໂຕ້ຕອບທີ່ສົ່ງອອກທຸກສິ່ງທຸກຢ່າງທີ່ຖືກກໍານົດໄວ້ໃນການປະຕິບັດ x.ml.

ອາກິວເມັນທີ່ລົງທ້າຍດ້ວຍ .cmo ຖືກນຳໄປລວບລວມເປັນໄບຕ໌ຂອງວັດຖຸ. ໄຟລ໌ເຫຼົ່ານີ້ຖືກເຊື່ອມຕໍ່
ຮ່ວມກັນ, ພ້ອມກັບໄຟລ໌ວັດຖຸທີ່ໄດ້ຮັບໂດຍການລວບລວມ .ml arguments (ຖ້າມີ), ແລະ
ຫ້ອງສະຫມຸດມາດຕະຖານ OCaml, ເພື່ອຜະລິດໂຄງການປະຕິບັດແບບດ່ຽວ. ຄໍາສັ່ງໃນທີ່
ການໂຕ້ຖຽງ .cmo ແລະ .ml ໄດ້ຖືກນໍາສະເຫນີຢູ່ໃນເສັ້ນຄໍາສັ່ງແມ່ນມີຄວາມກ່ຽວຂ້ອງ: ຫນ່ວຍງານລວບລວມແມ່ນ
ເລີ່ມຕົ້ນໃນຄໍາສັ່ງນັ້ນໃນເວລາແລ່ນ, ແລະມັນເປັນຄວາມຜິດພາດທີ່ເຊື່ອມຕໍ່ເວລາທີ່ຈະໃຊ້ອົງປະກອບຂອງ a
ຫນ່ວຍງານກ່ອນທີ່ຈະເລີ່ມຕົ້ນມັນ. ເພາະສະນັ້ນ, ມອບໃຫ້ xໄຟລ໌ .cmo ຕ້ອງມາກ່ອນ .cmo ທັງໝົດ
ໄຟລ໌ທີ່ອ້າງອີງເຖິງຫນ່ວຍງານ x.

ອາກິວເມັນທີ່ລົງທ້າຍດ້ວຍ .cma ຖືກນຳໄປເປັນຫ້ອງສະໝຸດຂອງ object bytecode. ຫ້ອງສະຫມຸດຂອງ
object bytecode packs ໃນໄຟລ໌ດຽວຊຸດຂອງ object bytecode ໄຟລ໌ (ໄຟລ໌ .cmo).
ຫໍສະຫມຸດຖືກສ້າງຂຶ້ນດ້ວຍ ocamlc -a (ເບິ່ງ​ລາຍ​ລະ​ອຽດ​ຂອງ​ -a ທາງ​ເລືອກ​ຂ້າງ​ລຸ່ມ​ນີ້​)​. ໄດ້
ໄຟລ໌ວັດຖຸທີ່ມີຢູ່ໃນຫ້ອງສະຫມຸດໄດ້ຖືກເຊື່ອມຕໍ່ເປັນໄຟລ໌ .cmo ປົກກະຕິ (ເບິ່ງຂ້າງເທິງ), ໃນ
ຄໍາສັ່ງລະບຸເວລາທີ່ໄຟລ໌ .cma ຖືກສ້າງຂຶ້ນ. ຄວາມແຕກຕ່າງພຽງແຕ່ວ່າຖ້າເປັນວັດຖຸ
ໄຟລ໌ທີ່ມີຢູ່ໃນຫ້ອງສະຫມຸດບໍ່ໄດ້ຖືກອ້າງອີງທຸກບ່ອນໃນໂຄງການ, ຫຼັງຈາກນັ້ນມັນບໍ່ແມ່ນ
ເຊື່ອມຕໍ່ໃນ.

ອາກິວເມັນທີ່ລົງທ້າຍດ້ວຍ .c ຖືກສົ່ງກັບ C compiler, ເຊິ່ງສ້າງໄຟລ໌ວັດຖຸ .o.
ໄຟລ໌ວັດຖຸນີ້ຖືກເຊື່ອມຕໍ່ກັບໂຄງການຖ້າຫາກວ່າ - custom ທຸງຖືກຕັ້ງ (ເບິ່ງ
ລາຍລະອຽດຂອງ - custom ດ້ານລຸ່ມ).

ອາກິວເມັນທີ່ລົງທ້າຍດ້ວຍ .o ຫຼື .a ແມ່ນສົມມຸດວ່າເປັນໄຟລ໌ວັດຖຸ C ແລະຫ້ອງສະໝຸດ. ພວກ​ເຂົາ​ແມ່ນ
ຜ່ານໄປຫາ C linker ເມື່ອເຊື່ອມຕໍ່ເຂົ້າ - custom ຮູບແບບ (ເບິ່ງລາຍລະອຽດຂອງ - custom
ດ້ານລຸ່ມ).

ອາກິວເມັນທີ່ລົງທ້າຍດ້ວຍ .so ແມ່ນສົມມຸດວ່າເປັນຫ້ອງສະໝຸດທີ່ແບ່ງປັນ C (DLLs). ໃນລະຫວ່າງການເຊື່ອມຕໍ່, ພວກເຂົາ
ຖືກຄົ້ນຫາສໍາລັບຟັງຊັນ C ພາຍນອກທີ່ອ້າງອີງຈາກລະຫັດ OCaml, ແລະຊື່ຂອງພວກມັນແມ່ນ
ຂຽນໃນ bytecode ທີ່ສ້າງຂຶ້ນສາມາດປະຕິບັດໄດ້. ລະບົບເວລາແລ່ນ ocamlrun(1) ຫຼັງຈາກນັ້ນໂຫຼດ
ເຂົາເຈົ້າແບບເຄື່ອນໄຫວໃນເວລາເລີ່ມຕົ້ນໂຄງການ.

ຜົນຜະລິດຂອງໄລຍະການເຊື່ອມໂຍງແມ່ນໄຟລ໌ທີ່ປະກອບດ້ວຍ bytecode ລວບລວມທີ່ສາມາດເປັນ
ປະຕິບັດໂດຍ OCaml bytecode ນາຍພາສາ: ຄໍາສັ່ງ ocamlrun(1). ຖ້າ caml.out ເປັນ
ຊື່ຂອງໄຟລ໌ທີ່ຜະລິດໂດຍໄລຍະການເຊື່ອມໂຍງ, ຄໍາສັ່ງ ocamlrun caml.out
arg1 arg2 ... Argn ປະຕິບັດລະຫັດທີ່ລວບລວມຢູ່ໃນ caml.out, ຜ່ານມັນເປັນ
ໂຕ້ແຍ້ງສາຍຕົວອັກສອນ arg1 to Argn, (ເບິ່ງ ocamlrun(1​) ສໍາ​ລັບ​ລາຍ​ລະ​ອຽດ​ເພີ່ມ​ເຕີມ​.

ໃນລະບົບສ່ວນໃຫຍ່, ໄຟລ໌ທີ່ຜະລິດໂດຍໄລຍະການເຊື່ອມໂຍງສາມາດດໍາເນີນການໂດຍກົງ, ເຊັ່ນ:
./caml.out arg1 arg2 ... Argn. ໄຟລ໌ທີ່ຜະລິດມີຊຸດ bit ທີ່ສາມາດປະຕິບັດໄດ້, ແລະມັນ
ຈັດການການເປີດຕົວນາຍພາສາ bytecode ດ້ວຍຕົວມັນເອງ.

ocamlc.opt ແມ່ນ compiler ດຽວກັນກັບ ocamlc, ແຕ່ຖືກລວບລວມດ້ວຍຕົວລວບລວມລະຫັດພື້ນເມືອງ
ocamlopt(1). ດັ່ງນັ້ນ, ມັນປະຕິບັດຕົວຄືກັນ ocamlc, ແຕ່ລວບລວມໄວຂຶ້ນ. ocamlc.opt ອາດຈະ
ບໍ່ມີຢູ່ໃນທຸກການຕິດຕັ້ງຂອງ OCaml.

OPTIONS


ຕົວເລືອກແຖວຄໍາສັ່ງຕໍ່ໄປນີ້ຖືກຮັບຮູ້ໂດຍ ocamlc(1).

-a ສ້າງຫ້ອງສະຫມຸດ (ໄຟລ໌ .cma) ດ້ວຍໄຟລ໌ວັດຖຸ (ໄຟລ໌ .cmo) ທີ່ໃຫ້ຢູ່ໃນຄໍາສັ່ງ
line, ແທນທີ່ຈະເຊື່ອມຕໍ່ພວກມັນເຂົ້າໄປໃນໄຟລ໌ທີ່ສາມາດປະຕິບັດໄດ້. ຊື່ຂອງຫໍສະຫມຸດຈະຕ້ອງ
ໄດ້​ຮັບ​ການ​ກໍາ​ນົດ​ກັບ​ -o ທາງເລືອກ.

If - custom, -cclib or -ccopt ທາງເລືອກແມ່ນຜ່ານເສັ້ນຄໍາສັ່ງ, ທາງເລືອກເຫຼົ່ານີ້
ຖືກເກັບໄວ້ໃນຫ້ອງສະຫມຸດ .cma ຜົນໄດ້ຮັບ. ຫຼັງຈາກນັ້ນ, ການເຊື່ອມຕໍ່ກັບຫ້ອງສະຫມຸດນີ້
ອັດຕະໂນມັດເພີ່ມກັບຄືນໄປບ່ອນ - custom, -cclib ແລະ -ccopt ທາງ​ເລືອກ​ທີ່​ເປັນ​ຖ້າ​ຫາກ​ວ່າ​ພວກ​ເຂົາ​ເຈົ້າ​ໄດ້​
ສະຫນອງໃຫ້ຢູ່ໃນເສັ້ນຄໍາສັ່ງ, ເວັ້ນເສຍແຕ່ວ່າ - noautolink ທາງເລືອກແມ່ນໃຫ້. ນອກຈາກນັ້ນ,
ສາຍຍ່ອຍ $CAMLORIGIN ພາຍໃນກ -ccopt ທາງເລືອກຈະຖືກແທນທີ່ດ້ວຍເສັ້ນທາງເຕັມ
ໄປທີ່ຫ້ອງສະໝຸດ .cma, ບໍ່ລວມຊື່ໄຟລ໌. - ນາມສະກຸນ ສະແດງຊື່ໄຟລ໌ຢ່າງແທ້ຈິງໃນ
ຂໍ້ຄວາມຜິດພາດ.

- ໝາຍເຫດ ຖິ້ມ​ຂໍ້​ມູນ​ລະ​ອຽດ​ກ່ຽວ​ກັບ​ການ​ສັງ​ລວມ (ປະ​ເພດ​, ການ​ຜູກ​ມັດ​, ຫາງ​ໂທ​, ແລະ​ອື່ນໆ​)​.
ຂໍ້​ມູນ​ສໍາ​ລັບ​ໄຟລ​໌​ src.ml ຖືກໃສ່ເຂົ້າໄປໃນໄຟລ໌ src.ບັນທຶກ. ໃນ​ກໍ​ລະ​ນີ​ຂອງ​ປະ​ເພດ​
ຜິດພາດ, dump ຂໍ້ມູນທັງຫມົດທີ່ inferred ໂດຍ type-checker ກ່ອນທີ່ຈະມີຄວາມຜິດພາດ. ໄດ້
srcໄຟລ໌ .annot ສາມາດຖືກນໍາໃຊ້ກັບຄໍາສັ່ງ emacs ທີ່ໄດ້ຮັບໃນ emacs/caml-types.el to
ສະແດງປະເພດ ແລະຄຳອະທິບາຍປະກອບອື່ນໆແບບໂຕ້ຕອບ.

-bin-annot
ຖິ້ມ​ຂໍ້​ມູນ​ລະ​ອຽດ​ກ່ຽວ​ກັບ​ການ​ສັງ​ລວມ (ປະ​ເພດ​, ການ​ຜູກ​ມັດ​, ຫາງ​ໂທ​, ແລະ​ອື່ນໆ​)
ໃນຮູບແບບຖານສອງ. ຂໍ້​ມູນ​ສໍາ​ລັບ​ໄຟລ​໌​ src.ml ຖືກໃສ່ເຂົ້າໄປໃນໄຟລ໌ src.cmt. ໃນ
ກໍ​ລະ​ນີ​ທີ່​ມີ​ຄວາມ​ຜິດ​ພາດ​ປະ​ເພດ​, dump ຂໍ້​ມູນ​ທັງ​ຫມົດ inferred ໂດຍ type-checker ກ່ອນ​
ຄວາມຜິດພາດ. ໄຟລ໌ຄໍາບັນຍາຍທີ່ຜະລິດໂດຍ -bin-annot ມີຂໍ້ມູນເພີ່ມເຕີມ
ແລະມີຄວາມຫນາແຫນ້ນຫຼາຍກ່ວາໄຟລ໌ທີ່ຜະລິດໂດຍ - ໝາຍເຫດ.

-c ລວບລວມເທົ່ານັ້ນ. ສະກັດກັ້ນໄລຍະການເຊື່ອມໂຍງຂອງການລວບລວມ. ໄຟລ໌ລະຫັດແຫຼ່ງແມ່ນ
ກາຍເປັນໄຟລ໌ທີ່ຖືກລວບລວມ, ແຕ່ບໍ່ມີໄຟລ໌ທີ່ສາມາດປະຕິບັດໄດ້. ທາງເລືອກນີ້ແມ່ນ
ເປັນປະໂຫຍດທີ່ຈະລວບລວມໂມດູນແຍກຕ່າງຫາກ.

-cc ccomp
ການນໍາໃຊ້ ccomp ເປັນຕົວເຊື່ອມຕໍ່ C ເມື່ອເຊື່ອມຕໍ່ໃນໂຫມດ "ແລ່ນແບບກໍາຫນົດເອງ" (ເບິ່ງ - custom
ທາງເລືອກ) ແລະເປັນ C compiler ສໍາລັບການລວບລວມໄຟລ໌ແຫຼ່ງ .c.

-cclib -llibname
ຜ່ານ -llibname ທາງ​ເລືອກ​ທີ່​ຈະ C linker ໃນ​ເວ​ລາ​ທີ່​ການ​ເຊື່ອມ​ຕໍ່​ໃນ​ຮູບ​ແບບ "runtime custom​"​
(ເບິ່ງ - custom ທາງ​ເລືອກ). ນີ້ເຮັດໃຫ້ຫ້ອງສະຫມຸດ C ທີ່ມອບໃຫ້ຖືກເຊື່ອມໂຍງກັບ
ໂຄງການ.

-ccopt ທາງເລືອກ
ຜ່ານການໃຫ້ ທາງເລືອກ ກັບ C compiler ແລະ linker, ເມື່ອເຊື່ອມຕໍ່ໃນ "custom
ໂໝດ runtime" (ເບິ່ງ - custom ທາງ​ເລືອກ). ຕົວ​ຢ່າງ, -ccopt -Ldir ເປັນ​ສາ​ເຫດ C
linker ເພື່ອຊອກຫາຫ້ອງສະຫມຸດ C ໃນໄດເລກະທໍລີ dir.

-compat-32
ກວດເບິ່ງວ່າ bytecode ທີ່ສ້າງຂຶ້ນສາມາດດໍາເນີນການໄດ້ໃນເວທີ 32-bit ແລະສັນຍານ
ຄວາມ​ຜິດ​ພາດ​ຖ້າ​ຫາກ​ວ່າ​ມັນ​ບໍ່​ສາ​ມາດ​. ນີ້ແມ່ນເປັນປະໂຫຍດໃນເວລາທີ່ລວບລວມ bytecode ໃນເຄື່ອງ 64-bit.

-ການຕັ້ງຄ່າ
ພິມຈໍານວນສະບັບຂອງ ocamlc(1​) ແລະ​ສະ​ຫຼຸບ​ສັງ​ລວມ​ລະ​ອຽດ​ຂອງ​ການ​ຕັ້ງ​ຄ່າ​ຂອງ​ຕົນ​,
ແລ້ວອອກ.

- custom
ເຊື່ອມຕໍ່ໃນໂຫມດ "ເວລາແລ່ນທີ່ກໍາຫນົດເອງ". ໃນຮູບແບບການເຊື່ອມໂຍງເລີ່ມຕົ້ນ, ຕົວເຊື່ອມຕໍ່ຜະລິດ
bytecode ທີ່ມີຈຸດປະສົງເພື່ອປະຕິບັດກັບລະບົບ runtime ທີ່ໃຊ້ຮ່ວມກັນ,
ocamlrun(1). ໃນໂຫມດເວລາແລ່ນທີ່ກໍາຫນົດເອງ, ຕົວເຊື່ອມຕໍ່ຜະລິດໄຟລ໌ຜົນຜະລິດທີ່
ມີທັງລະບົບ runtime ແລະ bytecode ສໍາລັບໂຄງການ. ຜົນໄດ້ຮັບ
ໄຟລ໌ມີຂະຫນາດໃຫຍ່ກວ່າ, ແຕ່ມັນສາມາດຖືກປະຕິບັດໂດຍກົງ, ເຖິງແມ່ນວ່າ ocamlrun(1​) ຄໍາ​ສັ່ງ​ແມ່ນ​
ບໍ່ໄດ້ຕິດຕັ້ງ. ຍິ່ງໄປກວ່ານັ້ນ, ໂຫມດ "ເວລາແລ່ນທີ່ກໍາຫນົດເອງ" ຊ່ວຍໃຫ້ການເຊື່ອມໂຍງລະຫັດ OCaml ກັບ
ຟັງຊັນ C ທີ່ກໍານົດໂດຍຜູ້ໃຊ້.

ບໍ່ເຄີຍໃຊ້ ອອກ(1) ຄໍາສັ່ງກ່ຽວກັບການປະຕິບັດທີ່ຜະລິດໂດຍ ocamlc - custom, ນີ້
ຈະເອົາສ່ວນ bytecode ຂອງການປະຕິບັດໄດ້.

-dllib -llibname
ຈັດແຈງສໍາລັບຫ້ອງສະຫມຸດທີ່ແບ່ງປັນ C dlllibnameດັ່ງນັ້ນ, ຈະຖືກໂຫລດແບບໄດນາມິກໂດຍການແລ່ນ-
ລະບົບເວລາ ocamlrun(1) ໃນເວລາເລີ່ມຕົ້ນໂຄງການ.

-dllpath dir
ເພີ່ມໄດເລກະທໍລີ dir ໄປຫາເສັ້ນທາງການຊອກຫາເວລາແລ່ນສໍາລັບຫ້ອງສະຫມຸດ C ທີ່ແບ່ງປັນ. ທີ່
link-time, ຫໍສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນແມ່ນຊອກຫາຢູ່ໃນເສັ້ນທາງຄົ້ນຫາມາດຕະຖານ (ຫນຶ່ງ
ທີ່ສອດຄ້ອງກັນກັບ -I ທາງ​ເລືອກ). ໄດ້ -dllpath ທາງເລືອກພຽງແຕ່ຮ້ານ dir ໃນ
ຜະລິດໄຟລ໌ທີ່ສາມາດປະຕິບັດໄດ້, ບ່ອນທີ່ ocamlrun(1​) ສາ​ມາດ​ຊອກ​ຫາ​ມັນ​ແລະ​ນໍາ​ໃຊ້​ມັນ​.

-for-pack ident
ທາງເລືອກນີ້ແມ່ນໄດ້ຮັບການຍອມຮັບສໍາລັບການເຂົ້າກັນໄດ້ກັບ ocamlopt(1); ມັນບໍ່ເຮັດຫຍັງ.

-g ເພີ່ມຂໍ້ມູນການດີບັກໃນຂະນະທີ່ລວບລວມແລະເຊື່ອມຕໍ່. ທາງເລືອກນີ້ແມ່ນຕ້ອງການໃນ
ເພື່ອ​ໃຫ້​ສາ​ມາດ debug ໂຄງ​ການ​ທີ່​ມີ​ ocamldebug(1) ແລະການຜະລິດ stack
backtraces ໃນເວລາທີ່ໂຄງການສິ້ນສຸດລົງໃນຂໍ້ຍົກເວັ້ນ uncaught.

-i ເຮັດໃຫ້ compiler ພິມຊື່ທີ່ກໍານົດໄວ້ທັງຫມົດ (ມີປະເພດ inferred ຫຼືຂອງເຂົາເຈົ້າ
ຄໍານິຍາມ) ເມື່ອລວບລວມການປະຕິບັດ (ໄຟລ໌ .ml). ບໍ່ມີໄຟລ໌ທີ່ຖືກລວບລວມ (.cmo
ແລະໄຟລ໌ .cmi) ຖືກຜະລິດ. ນີ້ສາມາດເປັນປະໂຫຍດໃນການກວດສອບປະເພດຂອງ inferred ໂດຍ
compiler ໄດ້. ນອກຈາກນີ້, ນັບຕັ້ງແຕ່ຜົນຜະລິດປະຕິບັດຕາມ syntax ຂອງການໂຕ້ຕອບ, ມັນສາມາດຊ່ວຍໄດ້
ໃນການຂຽນການໂຕ້ຕອບທີ່ຊັດເຈນ (ໄຟລ໌ .mli) ສໍາລັບໄຟລ໌: ພຽງແຕ່ປ່ຽນເສັ້ນທາງມາດຕະຖານ
ຜົນຜະລິດຂອງ compiler ເປັນໄຟລ໌ .mli, ແລະແກ້ໄຂໄຟລ໌ນັ້ນເພື່ອເອົາອອກທັງຫມົດ
ປະກາດຊື່ທີ່ບໍ່ໄດ້ສົ່ງອອກ.

-I ລະບົບ
ເພີ່ມໄດເລກະທໍລີທີ່ໃຫ້ໃສ່ໃນບັນຊີລາຍຊື່ຂອງໄດເລກະທໍລີທີ່ຄົ້ນຫາສໍາລັບການໂຕ້ຕອບທີ່ລວບລວມ
ໄຟລ໌ (.cmi), ໄຟລ໌ລະຫັດວັດຖຸທີ່ລວບລວມ (.cmo), ຫ້ອງສະໝຸດ (.cma), ແລະ C libraries
ລະບຸໄວ້ກັບ -cclib -lxxx . ໂດຍຄ່າເລີ່ມຕົ້ນ, ໄດເລກະທໍລີປະຈຸບັນຖືກຄົ້ນຫາກ່ອນ,
ຫຼັງຈາກນັ້ນ, ໄດເລກະທໍລີຫ້ອງສະຫມຸດມາດຕະຖານ. ໄດເລກະທໍລີເພີ່ມດ້ວຍ -I ຖືກຄົ້ນຫາຫຼັງຈາກ
ໄດເລກະທໍລີປະຈຸບັນ, ໃນຄໍາສັ່ງທີ່ພວກເຂົາຖືກມອບໃຫ້ຢູ່ໃນເສັ້ນຄໍາສັ່ງ,
ແຕ່ກ່ອນໄດເລກະທໍລີຫ້ອງສະຫມຸດມາດຕະຖານ. ເບິ່ງທາງເລືອກ -nostdlib.

ຖ້າໄດເລກະທໍລີທີ່ໃຫ້ເລີ່ມຕົ້ນດ້ວຍ +, ມັນໄດ້ຖືກປະຕິບັດກັບຫ້ອງສະຫມຸດມາດຕະຖານ
ໄດເລກະທໍລີ. ຕົວ​ຢ່າງ, -I +compiler-libs ເພີ່ມໄດເລກະທໍລີຍ່ອຍ compiler-libs of
ຫ້ອງສະຫມຸດມາດຕະຖານໄປຫາເສັ້ນທາງຄົ້ນຫາ.

- impl ຊື່​ເອ​ກະ​ສານ
ລວບລວມໄຟລ໌ ຊື່​ເອ​ກະ​ສານ ເປັນໄຟລ໌ການປະຕິບັດ, ເຖິງແມ່ນວ່າການຂະຫຍາຍຂອງມັນບໍ່ແມ່ນ
.ml.

-intf ຊື່​ເອ​ກະ​ສານ
ລວບລວມໄຟລ໌ ຊື່​ເອ​ກະ​ສານ ເປັນໄຟລ໌ການໂຕ້ຕອບ, ເຖິງແມ່ນວ່າການຂະຫຍາຍຂອງມັນບໍ່ແມ່ນ .mli.

-intf-suffix string
ຮັບຮູ້ຊື່ໄຟລ໌ທີ່ລົງທ້າຍດ້ວຍ string ເປັນໄຟລ໌ການໂຕ້ຕອບ (ແທນທີ່ຈະເປັນຄ່າເລີ່ມຕົ້ນ
.mli).

- ຮັກສາເອກະສານ
ຮັກສາສະຕຣິງເອກະສານຢູ່ໃນໄຟລ໌ .cmi ທີ່ສ້າງຂຶ້ນ.

- ຮັກສາສະຖານທີ່
ຮັກສາສະຖານທີ່ຢູ່ໃນໄຟລ໌ .cmi ທີ່ສ້າງຂຶ້ນ.

- ປ້າຍຊື່
ປ້າຍກຳກັບບໍ່ໄດ້ຖືກລະເລີຍໃນປະເພດ, ປ້າຍກຳກັບອາດຈະຖືກໃຊ້ໃນແອັບພລິເຄຊັນ, ແລະຕິດສະຫຼາກ
ຕົວກໍານົດການສາມາດຖືກຈັດໃສ່ໃນຄໍາສັ່ງໃດໆ. ນີ້ແມ່ນຄ່າເລີ່ມຕົ້ນ.

-linkall
ບັງຄັບໃຫ້ທຸກໂມດູນທີ່ມີຢູ່ໃນຫ້ອງສະໝຸດເຊື່ອມໂຍງເຂົ້າກັນ. ຖ້າທຸງນີ້ບໍ່ແມ່ນ
ໃຫ້, ໂມດູນທີ່ບໍ່ໄດ້ອ້າງອິງແມ່ນບໍ່ໄດ້ເຊື່ອມຕໍ່. ເມື່ອສ້າງຫ້ອງສະຫມຸດ (ທາງເລືອກ -a),
ການຕັ້ງຄ່າ -linkall ທາງເລືອກບັງຄັບການເຊື່ອມຕໍ່ຕໍ່ໄປທັງຫມົດຂອງໂຄງການທີ່ກ່ຽວຂ້ອງກັບນັ້ນ
ຫ້ອງສະຫມຸດເພື່ອເຊື່ອມຕໍ່ໂມດູນທັງຫມົດທີ່ມີຢູ່ໃນຫ້ອງສະຫມຸດ.

-make-runtime
ສ້າງລະບົບ runtime ແບບກໍານົດເອງ (ໃນໄຟລ໌ທີ່ລະບຸໄວ້ໂດຍທາງເລືອກ -o) ການ​ປະ​ກອບ​
ໄຟລ໌ວັດຖຸ C ແລະຫ້ອງສະຫມຸດທີ່ໃຫ້ຢູ່ໃນເສັ້ນຄໍາສັ່ງ. ເວລາແລ່ນແບບກຳນົດເອງນີ້
ລະບົບສາມາດຖືກນໍາໃຊ້ຕໍ່ມາເພື່ອປະຕິບັດການດໍາເນີນການ bytecode ທີ່ຜະລິດດ້ວຍທາງເລືອກ
ocamlc -use-runtime runtime-name.

-no-alias-deps
ຢ່າບັນທຶກຄວາມເພິ່ງພາອາໄສສໍາລັບນາມແຝງຂອງໂມດູນ.

-no-app-funct
ປິດການນຳໃຊ້ພຶດຕິກຳການນຳໃຊ້ຂອງ Functions. ດ້ວຍຕົວເລືອກນີ້, ແຕ່ລະ function
ແອັບພລິເຄຊັນສ້າງປະເພດໃຫມ່ໃນຜົນໄດ້ຮັບຂອງມັນແລະນໍາໃຊ້ function ດຽວກັນສອງຄັ້ງ
ການໂຕ້ຖຽງດຽວກັນເຮັດໃຫ້ສອງໂຄງສ້າງທີ່ບໍ່ເຂົ້າກັນໄດ້.

-noassert
ຢ່າລວບລວມການກວດສອບການຢືນຢັນ. ໃຫ້ສັງເກດວ່າແບບຟອມພິເສດ ຢືນຢັນ ທີ່ບໍ່ຖືກຕ້ອງ ແມ່ນສະເຫມີໄປ
ລວບລວມເພາະວ່າມັນຖືກພິມໂດຍສະເພາະ. ທຸງນີ້ບໍ່ມີຜົນກະທົບໃນເວລາທີ່ເຊື່ອມຕໍ່
ໄຟລ໌ທີ່ລວບລວມແລ້ວ.

- noautolink
ເມື່ອເຊື່ອມຕໍ່ .cma libraries, ບໍ່ສົນໃຈ - custom, -cclib ແລະ -ccopt ທາງເລືອກທີ່ເປັນໄປໄດ້
ບັນຈຸຢູ່ໃນຫ້ອງສະຫມຸດ (ຖ້າທາງເລືອກເຫຼົ່ານີ້ຖືກມອບໃຫ້ໃນເວລາສ້າງ
ຫ້ອງສະຫມຸດ). ນີ້ສາມາດເປັນປະໂຫຍດຖ້າຫ້ອງສະຫມຸດມີຂໍ້ມູນສະເພາະຂອງ C ທີ່ບໍ່ຖືກຕ້ອງ
ຫ້ອງສະຫມຸດຫຼືທາງເລືອກ C; ໃນກໍລະນີນີ້, ໃນລະຫວ່າງການເຊື່ອມຕໍ່, ກໍານົດ - noautolink ແລະຜ່ານການ
ຫ້ອງສະຫມຸດ C ທີ່ຖືກຕ້ອງແລະທາງເລືອກໃນເສັ້ນຄໍາສັ່ງ.

-nolabels
ບໍ່ສົນໃຈປ້າຍທີ່ບໍ່ເລືອກໃນປະເພດ. ປ້າຍຊື່ບໍ່ສາມາດຖືກໃຊ້ໃນແອັບພລິເຄຊັນ, ແລະ
ຄໍາສັ່ງພາລາມິເຕີກາຍເປັນທີ່ເຄັ່ງຄັດ.

-nostdlib
ຢ່າເພີ່ມໄດເລກະທໍລີມາດຕະຖານໂດຍອັດຕະໂນມັດໃສ່ລາຍຊື່ໄດເລກະທໍລີ
ຄົ້ນຫາໄຟລ໌ການໂຕ້ຕອບທີ່ລວບລວມ (.cmi), ໄຟລ໌ລະຫັດວັດຖຸທີ່ລວບລວມ (.cmo),
ຫ້ອງສະໝຸດ (.cma), ແລະຫ້ອງສະໝຸດ C ທີ່ລະບຸດ້ວຍ -cclib -lxxx . ເບິ່ງທາງເລືອກ
-I.

-o exec-file
ລະບຸຊື່ຂອງໄຟລ໌ຜົນຜະລິດທີ່ຜະລິດໂດຍຕົວເຊື່ອມຕໍ່. ຊື່ຜົນຜະລິດເລີ່ມຕົ້ນ
is , ປະຕິບັດຕາມປະເພນີ Unix. ຖ້າ -a ທາງເລືອກແມ່ນໃຫ້, ລະບຸ
ຊື່ຂອງຫ້ອງສະຫມຸດທີ່ຜະລິດ. ຖ້າ - ຊອງ ທາງເລືອກແມ່ນໃຫ້, ລະບຸຊື່
ຂອງໄຟລ໌ວັດຖຸບັນຈຸທີ່ຜະລິດ. ຖ້າ -output-obj ທາງເລືອກແມ່ນໃຫ້, ລະບຸ
ຊື່ຂອງໄຟລ໌ຜົນຜະລິດທີ່ຜະລິດ. ນີ້ຍັງສາມາດຖືກນໍາໃຊ້ໃນເວລາທີ່ລວບລວມຂໍ້ມູນ
ການໂຕ້ຕອບຫຼືໄຟລ໌ການປະຕິບັດ, ໂດຍບໍ່ມີການເຊື່ອມຕໍ່, ໃນກໍລະນີນີ້ມັນກໍານົດຊື່
ຂອງໄຟລ໌ cmi ຫຼື cmo, ແລະຍັງຕັ້ງຊື່ໂມດູນເປັນຊື່ໄຟລ໌ເຖິງ
ຈຸດທໍາອິດ.

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

-output-obj
ເຮັດໃຫ້ຕົວເຊື່ອມຕໍ່ຜະລິດໄຟລ໌ວັດຖຸ C ແທນທີ່ຈະເປັນໄຟລ໌ປະຕິບັດການ bytecode.
ນີ້ແມ່ນເປັນປະໂຫຍດທີ່ຈະຫໍ່ລະຫັດ OCaml ເປັນຫ້ອງສະຫມຸດ C, ສາມາດໂທຫາໄດ້ຈາກໂຄງການ C ໃດ. ໄດ້
ຊື່ຂອງໄຟລ໌ວັດຖຸຜົນຜະລິດຕ້ອງຖືກຕັ້ງດ້ວຍ -o ທາງເລືອກ. ທາງເລືອກນີ້ຍັງສາມາດ
ຖືກນໍາໃຊ້ເພື່ອຜະລິດໄຟລ໌ແຫຼ່ງ C (.c) ຫຼືການລວບລວມທີ່ແບ່ງປັນ / ໄດນາມິກ
ຫ້ອງສະຫມຸດ (.so extension).

- ຊອງ ສ້າງໄຟລ໌ວັດຖຸ bytecode (ໄຟລ໌ .cmo) ແລະການໂຕ້ຕອບການລວບລວມຂອງມັນທີ່ກ່ຽວຂ້ອງ
(.cmi) ທີ່ລວມໄຟລ໌ວັດຖຸທີ່ໃຫ້ຢູ່ໃນເສັ້ນຄໍາສັ່ງ, ເຮັດໃຫ້ພວກມັນປາກົດ
ເປັນໂມດູນຍ່ອຍຂອງໄຟລ໌ .cmo ຜົນຜະລິດ. ຊື່ຂອງໄຟລ໌ .cmo ຜົນຜະລິດຈະຕ້ອງເປັນ
ມອບໃຫ້ດ້ວຍ -o ທາງເລືອກ. ຕົວ​ຢ່າງ, ocamlc - ຊອງ -o p.cmo a.cmo b.cmo c.cmo
ສ້າງໄຟລ໌ທີ່ລວບລວມ p.cmo ແລະ p.cmi ອະທິບາຍຫນ່ວຍງານລວບລວມທີ່ມີສາມ
ໂມດູນຍ່ອຍ A, B ແລະ C, ທີ່ສອດຄ້ອງກັບເນື້ອໃນຂອງໄຟລ໌ວັດຖຸ a.cmo,
b.cmo ແລະ c.cmo. ເນື້ອໃນເຫຼົ່ານີ້ສາມາດອ້າງອີງເປັນ PA, PB ແລະ PC ໃນ
ສ່ວນທີ່ເຫຼືອຂອງໂຄງການ.

-pp ຄໍາສັ່ງ
ເຮັດໃຫ້ compiler ໂທຫາໄດ້ ຄໍາສັ່ງ ເປັນ preprocessor ສໍາລັບແຕ່ລະແຫຼ່ງ
ໄຟລ໌. ຜົນຜະລິດຂອງ ຄໍາສັ່ງ ຖືກໂອນໄປຫາໄຟລ໌ກາງ, ເຊິ່ງແມ່ນ
ລວບລວມ. ຖ້າບໍ່ມີຂໍ້ຜິດພາດໃນການລວບລວມຂໍ້ມູນ, ໄຟລ໌ກາງຈະຖືກລຶບ
ຫລັງຈາກນັ້ນ. ຊື່ຂອງໄຟລ໌ນີ້ຖືກສ້າງຂຶ້ນຈາກຊື່ພື້ນຖານຂອງໄຟລ໌ແຫຼ່ງ
ດ້ວຍສ່ວນຂະຫຍາຍ .ppi ສໍາລັບໄຟລ໌ການໂຕ້ຕອບ (.mli) ແລະ .ppo ສໍາລັບການປະຕິບັດ
ໄຟລ໌ (.ml).

-ppx ຄໍາສັ່ງ
ຫຼັງຈາກການວິເຄາະ, ທໍ່ຕົ້ນໄມ້ syntax abstract ຜ່ານ preprocessor ຄໍາສັ່ງ. ໄດ້
ໂມດູນ Ast_mapper(3) ປະຕິບັດການໂຕ້ຕອບພາຍນອກຂອງ preprocessor.

- ອໍາ​ນວຍ​ການ​
ກວດເບິ່ງເສັ້ນທາງຂໍ້ມູນໃນລະຫວ່າງການກວດສອບປະເພດ, ເພື່ອໃຫ້ແນ່ໃຈວ່າທຸກປະເພດ
ມາຈາກວິທີການຕົ້ນຕໍ. ເມື່ອໃຊ້ການໂຕ້ຖຽງທີ່ຕິດສະຫຼາກ ແລະ/ຫຼື polymorphic
ວິທີການ, ທຸງນີ້ແມ່ນຕ້ອງການເພື່ອຮັບປະກັນສະບັບໃນອະນາຄົດຂອງ compiler ຈະເປັນ
ສາມາດ infer ປະເພດຢ່າງຖືກຕ້ອງ, ເຖິງແມ່ນວ່າ algorithms ພາຍໃນມີການປ່ຽນແປງ. ໂຄງການທັງຫມົດ
ຍອມຮັບໃນ - ອໍາ​ນວຍ​ການ​ ໂຫມດຍັງຖືກຍອມຮັບໃນໂຫມດເລີ່ມຕົ້ນທີ່ທຽບເທົ່າ
ປະເພດ, ແຕ່ລາຍເຊັນຄູ່ທີ່ແຕກຕ່າງກັນ, ແລະນີ້ອາດຈະຊ້າລົງການກວດສອບປະເພດ; ທັນ
ມັນເປັນຄວາມຄິດທີ່ດີທີ່ຈະໃຊ້ມັນຄັ້ງດຽວກ່ອນທີ່ຈະເຜີຍແຜ່ລະຫັດແຫຼ່ງ.

- rectypes
ອະ​ນຸ​ຍາດ​ໃຫ້​ປະ​ເພດ recursive arbitrary ໃນ​ລະ​ຫວ່າງ​ການ​ກວດ​ສອບ​ປະ​ເພດ​. ໂດຍຄ່າເລີ່ມຕົ້ນ, ພຽງແຕ່ recursive
ປະເພດທີ່ recursion ຜ່ານປະເພດວັດຖຸໄດ້ຮັບການສະຫນັບສະຫນູນ. ໃຫ້ສັງເກດວ່າຄັ້ງດຽວ
ທ່ານໄດ້ສ້າງການໂຕ້ຕອບໂດຍໃຊ້ທຸງນີ້, ທ່ານຕ້ອງໃຊ້ມັນອີກເທື່ອຫນຶ່ງສໍາລັບທຸກຄົນ
ການເພິ່ງພາອາໄສ.

-runtime-variant បច្ច័យ
ຕື່ມ បច្ច័យ ກັບຊື່ຂອງຫ້ອງສະຫມຸດ runtime ທີ່ຈະນໍາໃຊ້ໂດຍໂຄງການ. ຖ້າ
OCaml ໄດ້ຖືກຕັ້ງຄ່າດ້ວຍທາງເລືອກ -with-debug-runtime, ຫຼັງຈາກນັ້ນ d ປະໂຫຍກແມ່ນ
ສະ​ຫນັບ​ສະ​ຫນູນ​ແລະ​ໃຫ້​ສະ​ບັບ​ດີ​ບັກ​ຂອງ runtime​.

-safe-string
ບັງ​ຄັບ​ໃຫ້​ແຍກ​ອອກ​ລະ​ຫວ່າງ​ປະ​ເພດ​ string ແລະ ໄບ, ດ້ວຍ​ເຫດ​ນີ້​ການ​ເຮັດ​ໃຫ້​ສາຍ​ການ​ອ່ານ​.
ເທົ່ານັ້ນ. ນີ້ຈະກາຍເປັນຄ່າເລີ່ມຕົ້ນໃນ OCaml ຮຸ່ນໃນອະນາຄົດ.

- ເສັ້ນ​ທາງ​ສັ້ນ​
ເມື່ອປະເພດໃດນຶ່ງຖືກເບິ່ງເຫັນພາຍໃຕ້ຫຼາຍ module-paths, ໃຫ້ໃຊ້ຕົວສັ້ນທີ່ສຸດເມື່ອ
ການພິມຊື່ຂອງປະເພດໃນການໂຕ້ຕອບ inferred ແລະຄວາມຜິດພາດແລະຂໍ້ຄວາມເຕືອນ.

- ລໍາດັບທີ່ເຄັ່ງຄັດ
ບັງຄັບໃຫ້ພາກສ່ວນຊ້າຍຂອງແຕ່ລະລໍາດັບມີຫົວໜ່ວຍປະເພດ.

- ກະທູ້
ລວບລວມຫຼືເຊື່ອມຕໍ່ໂຄງການ multithreaded, ປະສົມປະສານກັບລະບົບ "ກະທູ້"
ຫ້ອງສະຫມຸດອະທິບາຍຢູ່ໃນ ໄດ້ ໂອເຄມ ຂອງຜູ້ໃຊ້ ຄູ່ມື.

- ບໍ່​ປອດ​ໄພ​
ປິດການກວດສອບການຜູກມັດສໍາລັບການເຂົ້າເຖິງ array ແລະ string (the v.(i)ແລະs.[i]
ກໍ່ສ້າງ). ບັນດາໂຄງການທີ່ລວບລວມດ້ວຍ - ບໍ່​ປອດ​ໄພ​ ດັ່ງນັ້ນຈຶ່ງໄວຂຶ້ນເລັກນ້ອຍ, ແຕ່
ບໍ່ປອດໄພ: ທຸກຢ່າງສາມາດເກີດຂຶ້ນໄດ້ຖ້າໂປຣແກຣມເຂົ້າເຖິງ array ຫຼື string ຢູ່ນອກ
ຂອບເຂດຂອງມັນ.

- unsafe-string
ກໍານົດປະເພດ string ແລະ ໄບ, ດັ່ງນັ້ນຈຶ່ງເຮັດໃຫ້ສະຕຣິງສາມາດຂຽນໄດ້. ສໍາລັບເຫດຜົນ
ຂອງການເຂົ້າກັນໄດ້ກັບຄືນໄປບ່ອນ, ນີ້ແມ່ນການຕັ້ງຄ່າເລີ່ມຕົ້ນສໍາລັບປັດຈຸບັນ, ແຕ່ນີ້
ຈະມີການປ່ຽນແປງໃນ OCaml ຮຸ່ນໃນອະນາຄົດ.

-use-runtime runtime-name
ສ້າງໄຟລ໌ປະຕິບັດການ bytecode ທີ່ສາມາດປະຕິບັດໄດ້ໃນ runtime ກໍານົດເອງ
ລະບົບ runtime-name, ສ້າງຂຶ້ນກ່ອນຫນ້ານີ້ກັບ ocamlc -make-runtime runtime-name.

-v ພິມຈໍານວນສະບັບຂອງ compiler ແລະສະຖານທີ່ຂອງຫ້ອງສະຫມຸດມາດຕະຖານ
ໄດເລກະທໍລີ, ຈາກນັ້ນອອກ.

- ກະດູກ
ພິມຄໍາສັ່ງພາຍນອກທັງຫມົດກ່ອນທີ່ຈະຖືກປະຕິບັດ, ໂດຍສະເພາະ invocations ຂອງ
C compiler ແລະ linker ໃນ - custom ໂໝດ. ເປັນ​ປະ​ໂຫຍດ​ເພື່ອ​ແກ້​ໄຂ​ບັນ​ຫາ​ຫ້ອງ​ສະ​ຫມຸດ C​.

-vmthread
ລວບລວມຫຼືເຊື່ອມຕໍ່ໂຄງການ multithreaded, ປະສົມປະສານກັບຫົວຂໍ້ລະດັບ VM
ຫ້ອງສະຫມຸດອະທິບາຍຢູ່ໃນ ໄດ້ ໂອເຄມ ຂອງຜູ້ໃຊ້ ຄູ່ມື.

-vnum or -ການປ່ຽນແປງ
ພິມຈໍານວນສະບັບຂອງ compiler ໃນຮູບແບບສັ້ນ (ເຊັ່ນ: "3.11.0"), ຫຼັງຈາກນັ້ນອອກ.

-w ບັນຊີລາຍຊື່ເຕືອນ
ເປີດໃຊ້, ປິດການໃຊ້ງານ, ຫຼືຫມາຍເປັນການເຕືອນໄພອັນຕະລາຍທີ່ລະບຸໄວ້ໂດຍການໂຕ້ຖຽງ
ບັນຊີລາຍຊື່ເຕືອນ.

ການເຕືອນໄພແຕ່ລະຄົນສາມາດເປັນ ເປີດໃຫ້ໃຊ້ງານ or disabled, ແລະການເຕືອນໄພແຕ່ລະຄົນສາມາດເປັນ ຄວາມຕາຍor ບໍ່ເຖິງຕາຍ.
ຖ້າຄໍາເຕືອນຖືກປິດການໃຊ້ງານ, ມັນຈະບໍ່ສະແດງແລະບໍ່ມີຜົນຕໍ່ການລວບລວມຂໍ້ມູນໃດໆ
ວິທີການ (ເຖິງແມ່ນວ່າມັນຈະເສຍຊີວິດ). ຖ້າການເຕືອນໄພຖືກເປີດໃຊ້, ມັນຈະສະແດງໂດຍປົກກະຕິ
compiler ທຸກຄັ້ງທີ່ລະຫັດແຫຼ່ງກະຕຸ້ນມັນ. ຖ້າມັນຖືກເປີດໃຊ້ແລະເສຍຊີວິດ, ໄດ້
compiler ຍັງຈະຢຸດດ້ວຍຄວາມຜິດພາດຫຼັງຈາກການສະແດງມັນ.

ໄດ້ ບັນຊີລາຍຊື່ເຕືອນ argument ແມ່ນລໍາດັບຂອງຕົວກໍານົດການເຕືອນໄພ, ບໍ່ມີຕົວແຍກ
ລະຫວ່າງເຂົາເຈົ້າ. ຕົວລະບຸການເຕືອນໄພແມ່ນຫນຶ່ງໃນດັ່ງຕໍ່ໄປນີ້:

+num ເປີດໃຊ້ໝາຍເລກເຕືອນ num.

-num ປິດການນຳໃຊ້ໝາຍເລກເຕືອນ num.

@num ເປີດໃຊ້ ແລະໝາຍເປັນໝາຍເລກເຕືອນໄພອັນຕະລາຍ num.

+ເລກ 1..ເລກ 2 ເປີດໃຊ້ການເຕືອນໄພທັງໝົດລະຫວ່າງ ເລກ 1 ແລະ ເລກ 2 (ລວມ).

-ເລກ 1..ເລກ 2 ປິດການທໍາງານການເຕືອນໄພທັງຫມົດລະຫວ່າງ ເລກ 1 ແລະ ເລກ 2 (ລວມ).

@ເລກ 1..ເລກ 2 ເປີດໃຊ້ ແລະໝາຍວ່າເປັນການເຕືອນໄພອັນຕະລາຍທັງໝົດລະຫວ່າງ ເລກ 1 ແລະ ເລກ 2
(ລວມ).

+ຈົດຫມາຍ ເປີດໃຊ້ຊຸດຄໍາເຕືອນທີ່ສອດຄ້ອງກັບ ຈົດຫມາຍ. ຈົດຫມາຍອາດຈະເປັນ
ໂຕພິມໃຫຍ່ ຫຼື ຕົວພິມນ້ອຍ.

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

@ຈົດຫມາຍ ເປີດໃຊ້ງານ ແລະໝາຍວ່າເປັນການຕາຍຊຸດຂອງຄຳເຕືອນທີ່ສອດຄ້ອງກັນ ຈົດຫມາຍ.
ຕົວອັກສອນອາດຈະເປັນຕົວພິມໃຫຍ່ຫຼືຕົວພິມນ້ອຍ.

ໂຕພິມໃຫຍ່ ເປີດໃຊ້ຊຸດຄໍາເຕືອນທີ່ສອດຄ້ອງກັບ ໂຕພິມໃຫຍ່.

ໂຕພິມນ້ອຍ ປິດການທໍາງານທີ່ກໍານົດໄວ້ຂອງຄໍາເຕືອນທີ່ສອດຄ້ອງກັນ ໂຕພິມນ້ອຍ.

ຕົວເລກເຕືອນໄພມີດັ່ງນີ້.

1 ເຄື່ອງໝາຍເລີ່ມຕົ້ນຂອງຄຳເຫັນທີ່ໜ້າສົງໄສ.

2 ເຄື່ອງໝາຍທ້າຍຂອງຄຳເຫັນທີ່ໜ້າສົງໄສ.

3 ຄຸນສົມບັດທີ່ຖືກຍົກເລີກ.

4 ການຈັບຄູ່ຮູບແບບທີ່ອ່ອນແອ: ການຈັບຄູ່ທີ່ຈະຍັງຄົງສົມບູນເຖິງແມ່ນວ່າ
ຜູ້ກໍ່ສ້າງເພີ່ມເຕີມແມ່ນເພີ່ມໃສ່ຫນຶ່ງໃນປະເພດ variant ທີ່ກົງກັນ.

5 ການ​ທໍາ​ງານ​ທີ່​ນໍາ​ໃຊ້​ບາງ​ສ່ວນ​: ການ​ສະ​ແດງ​ອອກ​ທີ່​ຜົນ​ໄດ້​ຮັບ​ທີ່​ມີ​ປະ​ເພດ​ການ​ທໍາ​ງານ​ແລະ​ແມ່ນ​
ບໍ່ສົນໃຈ.

6 ປ້າຍຖືກລະເວັ້ນໃນແອັບພລິເຄຊັນຟັງຊັນ.

7 ວິທີການ overridden ໂດຍບໍ່ມີການນໍາໃຊ້ "ວິທີການ!" ຄໍາສໍາຄັນ

8 ການຈັບຄູ່ບາງສ່ວນ: ກໍລະນີທີ່ຂາດຫາຍໄປໃນການຈັບຄູ່ຮູບແບບ.

9 ຊ່ອງຂໍ້ມູນທີ່ຂາດຫາຍໄປໃນຮູບແບບບັນທຶກ.

10 ການສະແດງອອກທາງຊ້າຍມືຂອງລໍາດັບທີ່ບໍ່ມີປະເພດ ຫນ່ວຍບໍລິການ
(ແລະນັ້ນບໍ່ແມ່ນຫນ້າທີ່, ເບິ່ງຄໍາເຕືອນເລກ 5).

11 ກໍລະນີທີ່ຊ້ຳຊ້ອນຢູ່ໃນຮູບແບບທີ່ກົງກັນ (ກໍລະນີທີ່ບໍ່ໄດ້ໃຊ້).

12 ຮູບແບບຍ່ອຍທີ່ຊໍ້າຊ້ອນໃນການຈັບຄູ່ຮູບແບບ.

13 ລົບລ້າງຕົວແປຕົວຢ່າງ.

14 ການຫລົບຫນີ backslash ທີ່ຜິດກົດຫມາຍໃນສາຍຄົງທີ່.

15 ວິທີການສ່ວນຕົວທີ່ເປີດເຜີຍຕໍ່ສາທາລະນະ implicitly.

16 ການໂຕ້ຖຽງທາງເລືອກທີ່ບໍ່ສາມາດຍົກເລີກໄດ້.

17 ວິທີການ virtual ບໍ່ໄດ້ປະກາດ.

18 ປະເພດທີ່ບໍ່ແມ່ນຕົ້ນທຶນ.

19 ປະເພດທີ່ບໍ່ມີຕົ້ນທຶນ.

20 ການໂຕ້ຖຽງຟັງຊັນທີ່ບໍ່ໄດ້ໃຊ້.

21 ຄໍາຖະແຫຼງທີ່ບໍ່ໄດ້ກັບຄືນ.

22 ການເຕືອນກ່ອນໂປຣເຊສເຊີ.

23 ບັນທຶກທີ່ບໍ່ມີປະໂຫຍດ ກັບ ອານຸປະໂຫຍດ.

24 ຊື່ໂມດູນທີ່ບໍ່ດີ: ຊື່ໄຟລ໌ຕົ້ນສະບັບບໍ່ແມ່ນຊື່ໂມດູນ OCaml ທີ່ຖືກຕ້ອງ.

25 ຮູບແບບການຈັບຄູ່ກັບທຸກຂໍ້ guarded.

26 ຕົວແປທີ່ບໍ່ໄດ້ໃຊ້ທີ່ຫນ້າສົງໄສ: ຕົວແປທີ່ບໍ່ໄດ້ໃຊ້ທີ່ຜູກມັດກັບ ໃຫ້ or as, ແລະ
ບໍ່ໄດ້ເລີ່ມຕົ້ນດ້ວຍເຄື່ອງໝາຍຂີດກ້ອງ (_).

27 Innocuous unused variable: unused variable that is not bound with ໃຫ້ neither as,
ແລະບໍ່ເລີ່ມຕົ້ນດ້ວຍຕົວອັກສອນ (_).

28 ຮູບແບບມີຕົວສ້າງຄົງທີ່ທີ່ໃຊ້ກັບຂີດກ້ອງ (_)
ຮູບແບບ.

29 ເສັ້ນສິ້ນສຸດຂອງເສັ້ນທີ່ບໍ່ຫລົບຫນີໄດ້ຖືກພົບເຫັນຢູ່ໃນສາຍຄົງທີ່. ນີ້ອາດຈະເຮັດໃຫ້
ບັນຫາການເຄື່ອນທີ່ລະຫວ່າງ Unix ແລະ Windows.

30 ປ້າຍຊື່ສອງປ້າຍ ຫຼືຕົວສ້າງຊື່ດຽວກັນຖືກກຳນົດເປັນສອງອັນເຊິ່ງກັນແລະກັນ
ປະເພດ recursive.

31 ໂມດູນຖືກເຊື່ອມຕໍ່ສອງຄັ້ງໃນອັນດຽວກັນທີ່ສາມາດປະຕິບັດໄດ້.

32 ການປະກາດມູນຄ່າທີ່ບໍ່ໄດ້ໃຊ້.

33 ຖະແຫຼງການເປີດທີ່ບໍ່ໄດ້ໃຊ້.

34 ການປະກາດປະເພດທີ່ບໍ່ໄດ້ໃຊ້.

35 Unused for-loop index.

36 ຕົວແປບັນພະບຸລຸດທີ່ບໍ່ໄດ້ໃຊ້.

37 ຕົວສ້າງທີ່ບໍ່ໄດ້ໃຊ້.

38 ຕົວສ້າງສ່ວນຂະຫຍາຍທີ່ບໍ່ໄດ້ໃຊ້.

39 ທຸງ rec ທີ່ບໍ່ໃຊ້.

40 ຊື່ຜູ້ສ້າງ ຫຼືປ້າຍຊື່ທີ່ໃຊ້ນອກຂອບເຂດ.

41 ຊື່ຕົວສ້າງ ຫຼືປ້າຍກຳກັບທີ່ບໍ່ຊັດເຈນ.

42 Disambiguated constructor ຫຼືຊື່ປ້າຍຊື່.

43 ປ້າຍກຳກັບທີ່ບໍ່ເລືອກໄດ້ນຳໃຊ້ເປັນທາງເລືອກ.

44 Open statement shadows ຕົວລະບຸທີ່ໄດ້ກໍານົດໄວ້ແລ້ວ.

45 Open statement shadows ປ້າຍກຳກັບ ຫຼື constructor ທີ່ກຳນົດໄວ້ແລ້ວ.

46 ຂໍ້ຜິດພາດໃນຕົວແປສະພາບແວດລ້ອມ.

47 ການໂຫຼດຄຸນສົມບັດທີ່ຜິດກົດໝາຍ.

48 ການລົບລ້າງການໂຕ້ຖຽງທາງເລືອກທີ່ບໍ່ຊັດເຈນ.

49 ຂາດໄຟລ໌ cmi ເມື່ອຊອກຫາ module alias.

50 ຄໍາຄິດເຫັນເອກະສານທີ່ບໍ່ຄາດຄິດ.

ຕົວອັກສອນຫຍໍ້ມາຈາກຊຸດເຕືອນໄພຕໍ່ໄປນີ້. ຈົດໝາຍໃດໆທີ່ບໍ່ໄດ້ກ່າວເຖິງ
ໃນທີ່ນີ້ກົງກັບຊຸດເປົ່າ.

A ຄໍາເຕືອນທັງຫມົດ

C 1​, 2

D 3

E 4

F 5

K 32, 33, 34, 35, 36, 37, 38, 39

L 6

M 7

P 8

R 9

S 10

U 11​, 12

V 13

X 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 30

Y 26

Z 27

ການຕັ້ງຄ່າເລີ່ມຕົ້ນແມ່ນ -w +a-4-6-7-9-27-29-32..39-41-42-44-45-48-50. ໃຫ້ສັງເກດວ່າ
ຄໍາເຕືອນ 5 ແລະ 10 ບໍ່ໄດ້ຖືກກະຕຸ້ນສະ ເໝີ ໄປ, ຂຶ້ນກັບພາຍໃນຂອງປະເພດ
ຕົວກວດກາ.

- ເຕືອນ​ຄວາມ​ຜິດ​ພາດ​ ບັນຊີລາຍຊື່ເຕືອນ
ໝາຍເປັນຄວາມຜິດພາດຂອງຄຳເຕືອນທີ່ລະບຸໄວ້ໃນອາກິວເມັນ ບັນຊີລາຍຊື່ເຕືອນ. ຜູ້ສັງລວມ
ຈະຢຸດດ້ວຍຄວາມຜິດພາດເມື່ອໜຶ່ງໃນຄຳເຕືອນເຫຼົ່ານີ້ຖືກປ່ອຍອອກມາ. ໄດ້ ບັນຊີລາຍຊື່ເຕືອນ
ມີ​ຄວາມ​ຫມາຍ​ດຽວ​ກັນ​ກັບ​ສໍາ​ລັບ​ການ​ -w ທາງເລືອກ: ກ + ເຊັນ (ຫຼືຕົວພິມໃຫຍ່) ເຄື່ອງໝາຍ
ຄໍາເຕືອນທີ່ສອດຄ້ອງກັນວ່າເປັນການເສຍຊີວິດ, ກ - ເຊັນ (ຫຼືຕົວພິມນ້ອຍ) ປ່ຽນພວກມັນ
ກັບຄືນສູ່ການເຕືອນໄພທີ່ບໍ່ເປັນອັນຕະລາຍ, ແລະ a @ ເຊັນຊື່ທັງສອງເປີດໃຊ້ງານ ແລະໝາຍວ່າຕາຍແລ້ວ
ຄໍາ​ເຕືອນ​ທີ່​ສອດ​ຄ້ອງ​ກັນ​.

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

ການຕັ້ງຄ່າເລີ່ມຕົ້ນແມ່ນ - ເຕືອນ​ຄວາມ​ຜິດ​ພາດ​ -a (ການເຕືອນໄພທັງໝົດແມ່ນບໍ່ເປັນອັນຕະລາຍ).

- ເຕືອນ - ຊ່ວຍ​ເຫຼືອ​
ສະແດງລາຍລະອຽດຂອງຕົວເລກເຕືອນໄພທັງໝົດ.

- ບ່ອນໃດ ພິມສະຖານທີ່ຂອງຫ້ອງສະຫມຸດມາດຕະຖານ, ຫຼັງຈາກນັ້ນອອກ.

- ເອກະສານ ຂະບວນການ ເອກະສານ ເປັນຊື່ໄຟລ໌, ເຖິງແມ່ນວ່າມັນຈະເລີ່ມຕົ້ນດ້ວຍ dash (-) ຕົວອັກສອນ.

-ຊ່ວຍ or - ຊ່ວຍ
ສະແດງສະຫຼຸບການນຳໃຊ້ສັ້ນ ແລະອອກ.

ໃຊ້ ocamlc.opt ອອນລາຍໂດຍໃຊ້ບໍລິການ onworks.net


ເຊີບເວີ ແລະສະຖານີເຮັດວຽກຟຣີ

ດາວໂຫຼດແອັບ Windows ແລະ Linux

Linux ຄຳ ສັ່ງ

Ad




×
ການ​ໂຄ​ສະ​ນາ
?ຊື້ເຄື່ອງ, ຈອງ, ຫຼືຊື້ທີ່ນີ້ — ບໍ່ມີຄ່າໃຊ້ຈ່າຍ, ຊ່ວຍໃຫ້ການບໍລິການຟຣີ.