ພາສາອັງກິດພາສາຝຣັ່ງເຢຍລະມັນItalianປອກຕຸຍການລັດເຊຍແອສປາໂຍນ

OnWorks favicon

mips64-linux-gnuabi64-cpp-5 - ອອນລາຍໃນຄລາວ

ແລ່ນ mips64-linux-gnuabi64-cpp-5 ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີຜ່ານ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

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

ໂຄງການ:

NAME


cpp - ໂປເຊດເຊີ C

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


cpp [-Dມະຫາພາກ[=defn]...] [-Uມະຫາພາກ]
[-Idir... ] [-iquotedir... ]
[-Wເຕືອນ... ]
[-M|ເອັມ] [-MG] [-MF ຊື່​ເອ​ກະ​ສານ]
[-MP] [-MQ ເປົ້າ​ຫມາຍ... ]
[-MT ເປົ້າ​ຫມາຍ... ]
[-P] [-fno-working-directory]
[-x ພາສາ] [-std=ມາດຕະຖານ]
infile outfile

ພຽງແຕ່ທາງເລືອກທີ່ເປັນປະໂຫຍດທີ່ສຸດແມ່ນໄດ້ລະບຸໄວ້ຢູ່ທີ່ນີ້; ເບິ່ງຂ້າງລຸ່ມນີ້ສໍາລັບສ່ວນທີ່ເຫຼືອ.

ລາຍລະອຽດ


C preprocessor, ມັກຈະເອີ້ນວ່າ cpp, ແມ່ນເປັນ ມະຫາພາກ processor ທີ່ຖືກນໍາໃຊ້ອັດຕະໂນມັດໂດຍ
C compiler ເພື່ອຫັນປ່ຽນໂຄງການຂອງທ່ານກ່ອນທີ່ຈະລວບລວມ. ມັນຖືກເອີ້ນວ່າມະຫາພາກ
ໂຮງງານຜະລິດເນື່ອງຈາກວ່າມັນອະນຸຍາດໃຫ້ທ່ານສາມາດກໍານົດ ມະຫາພາກ, ຊຶ່ງເປັນຕົວຫຍໍ້ສັ້ນໆສໍາລັບຍາວ
ກໍ່ສ້າງ.

C preprocessor ມີຈຸດປະສົງເພື່ອໃຊ້ກັບລະຫັດແຫຼ່ງ C, C++, ແລະ Objective-C ເທົ່ານັ້ນ.
ໃນໄລຍະຜ່ານມາ, ມັນໄດ້ຖືກທາລຸນເປັນຕົວປະມວນຜົນຂໍ້ຄວາມທົ່ວໄປ. ມັນ​ຈະ choke ກ່ຽວ​ກັບ​ການ​ປ້ອນ​ຂໍ້​ມູນ​ທີ່​
ບໍ່ປະຕິບັດຕາມກົດລະບຽບຂອງ lexical ຂອງ C. ຕົວຢ່າງ, apostrophes ຈະຖືກຕີຄວາມວ່າ
ການເລີ່ມຕົ້ນຂອງຄ່າຄົງທີ່ຂອງຕົວອັກສອນ, ແລະເຮັດໃຫ້ເກີດຄວາມຜິດພາດ. ນອກຈາກນັ້ນ, ທ່ານບໍ່ສາມາດອີງໃສ່ມັນ
ການຮັກສາຄຸນລັກສະນະຂອງການປ້ອນຂໍ້ມູນທີ່ບໍ່ສໍາຄັນຕໍ່ພາສາ C ໃນຄອບຄົວ.
ຖ້າ Makefile ຖືກປຸງແຕ່ງກ່ອນ, ແຖບແຂງທັງຫມົດຈະຖືກລຶບອອກ, ແລະ Makefile ຈະ
ບໍ່ເຮັດວຽກ.

ໂດຍກ່າວວ່າ, ເຈົ້າມັກຈະສາມາດຫນີໄປກັບການໃຊ້ cpp ໃນສິ່ງທີ່ບໍ່ແມ່ນ C. ອື່ນໆ
ພາສາການຂຽນໂປລແກລມ Algol-ish ມັກຈະປອດໄພ (Pascal, Ada, ແລະອື່ນໆ) ດັ່ງນັ້ນການປະກອບ, ກັບ.
ລະມັດລະວັງ. -cpp ໂຫມດຮັກສາພື້ນທີ່ສີຂາວຫຼາຍ, ແລະຖ້າບໍ່ດັ່ງນັ້ນຫຼາຍ
ອະນຸຍາດ. ຫຼາຍໆບັນຫາສາມາດຫຼີກລ່ຽງໄດ້ໂດຍການຂຽນຄຳເຫັນແບບ C ຫຼື C++
ແທນ​ທີ່​ຈະ​ເປັນ​ຄໍາ​ຄິດ​ເຫັນ​ຂອງ​ພາ​ສາ​ກໍາ​ເນີດ​, ແລະ​ການ​ຮັກ​ສາ macro ງ່າຍ​ດາຍ​.

ບ່ອນໃດກໍ່ຕາມທີ່ເປັນໄປໄດ້, ທ່ານຄວນໃຊ້ preprocessor ມຸ່ງໄປສູ່ພາສາທີ່ທ່ານກໍາລັງຂຽນ
in. ຮຸ່ນທີ່ທັນສະໄຫມຂອງ GNU assembler ມີສິ່ງອໍານວຍຄວາມສະດວກມະຫາພາກ. ລະດັບສູງທີ່ສຸດ
ພາສາການຂຽນໂປລແກລມມີເງື່ອນໄຂການລວບລວມແລະກົນໄກການລວມຂອງຕົນເອງ. ຖ້າ
ສິ່ງອື່ນລົ້ມເຫລວ, ລອງໃຊ້ຕົວປະມວນຜົນຂໍ້ຄວາມທົ່ວໄປທີ່ແທ້ຈິງ, ເຊັ່ນ GNU M4.

C preprocessors ແຕກຕ່າງກັນໃນບາງລາຍລະອຽດ. ຄູ່ມືນີ້ປຶກສາຫາລືກ່ຽວກັບ GNU C preprocessor, ເຊິ່ງ
ສະຫນອງ superset ຂະຫນາດນ້ອຍຂອງລັກສະນະຂອງ ISO ມາດຕະຖານ C. ໃນໂຫມດເລີ່ມຕົ້ນຂອງມັນ, GNU
C preprocessor ບໍ່ໄດ້ເຮັດບາງສິ່ງທີ່ຕ້ອງການໂດຍມາດຕະຖານ. ເຫຼົ່ານີ້ແມ່ນຄຸນສົມບັດ
ທີ່ບໍ່ຄ່ອຍມີ, ຖ້າເຄີຍໃຊ້, ແລະອາດຈະເຮັດໃຫ້ເກີດການປ່ຽນແປງທີ່ຫນ້າປະຫລາດໃຈກັບຄວາມຫມາຍຂອງ a
ໂຄງ​ການ​ທີ່​ບໍ່​ໄດ້​ຄາດ​ຫວັງ​ໃຫ້​ເຂົາ​ເຈົ້າ​. ເພື່ອໃຫ້ໄດ້ມາດຕະຖານ ISO ທີ່ເຂັ້ມງວດ, ທ່ານຄວນໃຊ້
-std=c90, -std=c99 or -std=c11 ທາງເລືອກ, ຂຶ້ນກັບສະບັບຂອງມາດຕະຖານທີ່ທ່ານ
ຕ້ອງການ. ເພື່ອໃຫ້ໄດ້ຮັບການວິນິດໄສບັງຄັບທັງຫມົດ, ທ່ານຍັງຕ້ອງໃຊ້ - pedantic.

ຄູ່ມືນີ້ອະທິບາຍເຖິງພຶດຕິກໍາຂອງໂປເຊດເຊີ ISO preprocessor. ເພື່ອຫຼຸດຜ່ອນ gratuitous
ຄວາມແຕກຕ່າງ, ບ່ອນທີ່ພຶດຕິກໍາຂອງ ISO preprocessor ບໍ່ຂັດແຍ້ງກັບແບບດັ້ງເດີມ
semantics, preprocessor ແບບດັ້ງເດີມຄວນປະຕິບັດແບບດຽວກັນ. ຕ່າງໆ
ຄວາມແຕກຕ່າງທີ່ມີຢູ່ແມ່ນມີລາຍລະອຽດຢູ່ໃນພາກ ແບບດັ້ງເດີມ ຮູບແບບການ.

ເພື່ອຄວາມກະຈ່າງແຈ້ງ, ເວັ້ນເສຍແຕ່ໄດ້ບັນທຶກໄວ້ເປັນຢ່າງອື່ນ, ການອ້າງອີງເຖິງ CPP ໃນຄູ່ມືນີ້ອ້າງເຖິງ GNU CPP.

OPTIONS


C preprocessor ຄາດວ່າຈະມີສອງຊື່ໄຟລ໌ເປັນການໂຕ້ຖຽງ, infile ແລະ outfile. ໄດ້
preprocessor ອ່ານ infile ຮ່ວມກັບໄຟລ໌ອື່ນໆທີ່ມັນລະບຸດ້ວຍ #includeທີ່ຢູ່ ທັງຫມົດ
ຜົນ​ຜະ​ລິດ​ທີ່​ຜະ​ລິດ​ໂດຍ​ໄຟລ​໌​ເຂົ້າ​ຮ່ວມ​ແມ່ນ​ລາຍ​ລັກ​ອັກ​ສອນ​ໃນ​ outfile.

ບໍ່ວ່າຈະ infile or outfile ອາດຈະເປັນ -, ເຊິ່ງ infile ຫມາຍຄວາມວ່າຈະອ່ານຈາກວັດສະດຸປ້ອນມາດຕະຖານແລະ
as outfile ຫມາຍຄວາມວ່າຈະຂຽນໃສ່ຜົນໄດ້ຮັບມາດຕະຖານ. ນອກຈາກນັ້ນ, ຖ້າໄຟລ໌ໃດຖືກລະເວັ້ນ, ມັນຫມາຍຄວາມວ່າ
ຄືກັນກັບວ່າ - ໄດ້ຖືກລະບຸໄວ້ສໍາລັບໄຟລ໌ນັ້ນ.

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

ທາງເລືອກຫຼາຍມີຊື່ຫຼາຍຕົວອັກສອນ; ດັ່ງນັ້ນຫຼາຍທາງເລືອກຕົວອັກສອນດຽວອາດຈະ ບໍ່ be
ຈັດກຸ່ມ: -dM ແມ່ນແຕກຕ່າງຈາກ -d -M.

-D ຊື່
ກຳນົດລ່ວງໜ້າ ຊື່ ເປັນມະຫາພາກ, ມີນິຍາມ 1.

-D ຊື່=ຄໍານິຍາມ
ເນື້ອໃນຂອງ ຄໍານິຍາມ ແມ່ນ tokenized ແລະປຸງແຕ່ງເປັນຖ້າຫາກວ່າພວກເຂົາເຈົ້າປະກົດວ່າໃນລະຫວ່າງ
ການແປພາສາໄລຍະສາມໃນ a #ກໍານົດ ຄໍາສັ່ງ. ໂດຍສະເພາະ, ຄໍານິຍາມຈະເປັນ
ຫຍໍ້ດ້ວຍຕົວອັກສອນແຖວໃໝ່ທີ່ຝັງໄວ້.

ຖ້າທ່ານກໍາລັງເອີ້ນ preprocessor ຈາກໂຄງການ shell ຫຼື shell, ທ່ານອາດຈະຕ້ອງການ
ເພື່ອໃຊ້ syntax ວົງຢືມຂອງ shell ເພື່ອປົກປ້ອງຕົວອັກສອນເຊັ່ນຊ່ອງທີ່ມີ a
ຄວາມຫມາຍໃນ syntax ຂອງ shell.

ຖ້າທ່ານຕ້ອງການກໍານົດ macro ຄ້າຍຄືຟັງຊັນຢູ່ໃນເສັ້ນຄໍາສັ່ງ, ຂຽນ argument ຂອງມັນ
ລາຍຊື່ທີ່ມີວົງເລັບອ້ອມຂ້າງກ່ອນເຄື່ອງໝາຍເທົ່າກັບ (ຖ້າມີ). ວົງເລັບແມ່ນ
ມີຄວາມຫມາຍສໍາລັບແກະສ່ວນໃຫຍ່, ດັ່ງນັ້ນທ່ານຈະຕ້ອງອ້າງເຖິງທາງເລືອກ. ກັບ sh ແລະ csh,
-D'ຊື່(ໂຕ້ຖຽງ...)=ຄໍານິຍາມ' ວຽກງານ.

-D ແລະ -U ທາງ​ເລືອກ​ແມ່ນ​ໄດ້​ຮັບ​ການ​ປະ​ຕິ​ບັດ​ຕາມ​ຄໍາ​ສັ່ງ​ທີ່​ເຂົາ​ເຈົ້າ​ໄດ້​ຮັບ​ໃນ​ບັນ​ຊີ​ຄໍາ​ສັ່ງ​. ທັງໝົດ
- ໄອມາໂຄຣ ເອກະສານ ແລະ - ລວມ​ທັງ​ ເອກະສານ ທາງ​ເລືອກ​ແມ່ນ​ໄດ້​ຮັບ​ການ​ປຸງ​ແຕ່ງ​ຫຼັງ​ຈາກ​ທີ່​ທັງ​ຫມົດ​ -D ແລະ -U ຕົວເລືອກ

-U ຊື່
ຍົກເລີກຄໍານິຍາມທີ່ຜ່ານມາຂອງ ຊື່, ບໍ່ວ່າຈະສ້າງຂຶ້ນໃນຫຼືສະຫນອງໃຫ້ກັບ a -D ທາງເລືອກ.

-undef
ຢ່າກຳນົດມາໂຄຣສະເພາະລະບົບ ຫຼື GCC ສະເພາະໃດໆລ່ວງໜ້າ. ມາດຕະຖານທີ່ກຳນົດໄວ້ລ່ວງໜ້າ
ມະຫາພາກຍັງຄົງຖືກກໍານົດ.

-I dir
ເພີ່ມໄດເລກະທໍລີ dir ໄປຫາບັນຊີລາຍຊື່ຂອງໄດເລກະທໍລີທີ່ຈະຊອກຫາໄຟລ໌ header.

ລາຍຊື່ໂດຍ -I ຖືກຄົ້ນຫາກ່ອນທີ່ລະບົບມາດຕະຖານປະກອບມີໄດເລກະທໍລີ.
ຖ້າໄດເລກະທໍລີ dir ເປັນລະບົບມາດຕະຖານປະກອບມີໄດເລກະທໍລີ, ທາງເລືອກແມ່ນຖືກລະເວັ້ນ
ໃຫ້ແນ່ໃຈວ່າຄໍາສັ່ງຄົ້ນຫາໃນຕອນຕົ້ນສໍາລັບລະບົບລະບົບແລະການປິ່ນປົວພິເສດ
ສ່ວນຫົວຂອງລະບົບບໍ່ໄດ້ພ່າຍແພ້. ຖ້າ dir ເລີ່ມຕົ້ນດ້ວຍ "=", ຈາກນັ້ນ "=" ຈະເປັນ
ແທນທີ່ດ້ວຍຄໍານໍາຫນ້າ sysroot; ເບິ່ງ --sysroot ແລະ -isysroot.

-o ເອກະສານ
ຂຽນຜົນໄດ້ຮັບໃສ່ ເອກະສານ. ນີ້ແມ່ນຄືກັນກັບການລະບຸ ເອກະສານ ເປັນທາງເລືອກທີສອງທີ່ບໍ່ແມ່ນ
ການໂຕ້ຖຽງກັບ cpp. gcc ມີການຕີຄວາມແຕກຕ່າງກັນຂອງການໂຕ້ຖຽງທີ່ບໍ່ແມ່ນທາງເລືອກທີສອງ,
ດັ່ງນັ້ນທ່ານຕ້ອງໃຊ້ -o ເພື່ອລະບຸໄຟລ໌ຜົນຜະລິດ.

- ຝາ
ເປີດ​ການ​ເຕືອນ​ທາງ​ເລືອກ​ທັງ​ຫມົດ​ທີ່​ຕ້ອງ​ການ​ສໍາ​ລັບ​ລະ​ຫັດ​ປົກ​ກະ​ຕິ​. ໃນປັດຈຸບັນນີ້
is - ຄໍາເຫັນ, -Wtrigraphs, -Wmultichar ແລະການເຕືອນກ່ຽວກັບການສົ່ງເສີມຈໍານວນເຕັມທີ່ເຮັດໃຫ້ເກີດ a
ການປ່ຽນແປງຂອງເຄື່ອງຫມາຍໃນ "#if" ສະແດງອອກ. ໃຫ້ສັງເກດວ່າຫຼາຍຄໍາເຕືອນຂອງ preprocessor
ເປີດໂດຍຄ່າເລີ່ມຕົ້ນ ແລະບໍ່ມີທາງເລືອກທີ່ຈະຄວບຄຸມພວກມັນ.

- ຄໍາເຫັນ
- ຄໍາເຫັນ
ເຕືອນທຸກຄັ້ງທີ່ລຳດັບຄຳເຫັນເລີ່ມຕົ້ນ /* ປາກົດຢູ່ໃນ a /* ຄໍາເຫັນ, ຫຼືທຸກຄັ້ງ a
backslash-newline ປະກົດຢູ່ໃນ a // ຄໍາເຫັນ. (ທັງສອງຮູບແບບມີຜົນກະທົບດຽວກັນ.)

-Wtrigraphs
trigraphs ສ່ວນໃຫຍ່ໃນຄໍາເຫັນບໍ່ສາມາດສົ່ງຜົນກະທົບຕໍ່ຄວາມຫມາຍຂອງໂຄງການ. ຢ່າງໃດກໍ່ຕາມ, ກ
trigraph ທີ່ຈະປະກອບເປັນເສັ້ນໃຫມ່ຫນີ (??/ ໃນຕອນທ້າຍຂອງເສັ້ນ) ສາມາດ, ໂດຍ
ການປ່ຽນແປງບ່ອນທີ່ຄໍາຄິດເຫັນເລີ່ມຕົ້ນຫຼືສິ້ນສຸດ. ເພາະສະນັ້ນ, ພຽງແຕ່ trigraphs ທີ່ຈະປະກອບ
ແຖວໃໝ່ທີ່ຫຼົບໜີອອກມາ ຜະລິດຄຳເຕືອນພາຍໃນຄຳເຫັນ.

ທາງເລືອກນີ້ແມ່ນຊີ້ໃຫ້ເຫັນໂດຍ - ຝາທີ່ຢູ່ ຖ້າຫາກວ່າ - ຝາ ບໍ່ໄດ້ຖືກມອບໃຫ້, ຕົວເລືອກນີ້ຍັງຖືກເປີດໃຊ້ຢູ່
ເວັ້ນເສຍແຕ່ວ່າ trigraphs ຖືກເປີດໃຊ້. ເພື່ອໃຫ້ໄດ້ຮັບການແປງ trigraph ໂດຍບໍ່ມີການເຕືອນ, ແຕ່ໄດ້ຮັບ
ອື່ນໆ - ຝາ ຄໍາ​ເຕືອນ​, ການ​ນໍາ​ໃຊ້​ -trigraphs - ຝາ -Wno-trigraphs.

- ແບບດັ້ງເດີມ
ເຕືອນກ່ຽວກັບສິ່ງກໍ່ສ້າງບາງຢ່າງທີ່ມີລັກສະນະແຕກຕ່າງກັນໃນແບບດັ້ງເດີມ ແລະ ISO C. ນອກຈາກນີ້
ເຕືອນກ່ຽວກັບໂຄງສ້າງ ISO C ທີ່ບໍ່ມີການທຽບເທົ່າ C ແບບດັ້ງເດີມ, ແລະມີບັນຫາ
ການກໍ່ສ້າງທີ່ຄວນຫຼີກເວັ້ນ.

-Wundef
ເຕືອນທຸກຄັ້ງທີ່ພົບຕົວລະບຸທີ່ບໍ່ແມ່ນມະຫາພາກຢູ່ໃນ # ຖ້າ ທິດ​ທາງ​,
ນອກຂອງ ກໍານົດໄວ້. ຕົວລະບຸດັ່ງກ່າວຖືກແທນທີ່ດ້ວຍສູນ.

-Wunused-macros
ເຕືອນກ່ຽວກັບມະຫາພາກທີ່ກຳນົດໄວ້ໃນໄຟລ໌ຫຼັກທີ່ບໍ່ໄດ້ໃຊ້. ມະຫາພາກແມ່ນ ໃຫມ່ ຖ້າມັນແມ່ນ
ຂະຫຍາຍຫຼືທົດສອບການມີຢູ່ຢ່າງຫນ້ອຍຫນຶ່ງຄັ້ງ. preprocessor ຍັງຈະເຕືອນຖ້າຫາກວ່າ
macro ບໍ່ໄດ້ຖືກນໍາໃຊ້ໃນເວລາທີ່ມັນຖືກກໍານົດຄືນໃຫມ່ຫຼືບໍ່ໄດ້ກໍານົດ.

ມາໂຄໃນຕົວ, ມະຫາພາກທີ່ກຳນົດໄວ້ໃນເສັ້ນຄຳສັ່ງ, ແລະ ມະຫາພາກທີ່ກຳນົດໄວ້ໃນລວມມີ
ໄຟລ໌ບໍ່ໄດ້ຖືກເຕືອນກ່ຽວກັບ.

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

#if ກໍານົດ the_macro_causing_the_warning
#ສຸດທ້າຍ

-Wendif-ປ້າຍ
ເຕືອນທຸກຄັ້ງທີ່ #ອື່ນ or an #ສຸດທ້າຍ ຕິດຕາມດ້ວຍຂໍ້ຄວາມ. ນີ້ມັກຈະເກີດຂຶ້ນໃນ
ລະຫັດຂອງແບບຟອມ

#ຖ້າ FOO
...
# FOO ອື່ນ
...
#endif FOO

"FOO" ທີສອງແລະທີສາມຄວນຈະຢູ່ໃນຄໍາເຫັນ, ແຕ່ມັກຈະບໍ່ມີຢູ່ໃນໂຄງການເກົ່າ.
ການເຕືອນໄພນີ້ແມ່ນຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ.

- ຄວາມ​ຜິດ​ພາດ​
ເຮັດໃຫ້ການເຕືອນໄພທັງຫມົດເຂົ້າໄປໃນຄວາມຜິດພາດທີ່ຍາກ. ລະຫັດແຫຼ່ງທີ່ເຮັດໃຫ້ເກີດການເຕືອນໄພ
ຖືກປະຕິເສດ.

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

-w ສະກັດກັ້ນການເຕືອນໄພທັງຫມົດ, ລວມທັງສິ່ງທີ່ GNU CPP ອອກໂດຍຄ່າເລີ່ມຕົ້ນ.

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

-pedantic ຜິດ​ພາດ​
ອອກການວິນິດໄສທີ່ບັງຄັບທັງໝົດ, ແລະເຮັດໃຫ້ການວິນິດໄສທີ່ບັງຄັບທັງໝົດເປັນຄວາມຜິດພາດ.
ນີ້ລວມມີການວິນິດໄສບັງຄັບທີ່ GCC ມີບັນຫາໂດຍບໍ່ມີ - pedantic ແຕ່ປະຕິບັດເປັນ
ຄຳ ເຕືອນ.

-M ແທນ​ທີ່​ຈະ​ໃຫ້​ຜົນ​ໄດ້​ຮັບ​ຂອງ​ການ​ປຸງ​ແຕ່ງ​ກ່ອນ​, ອອກ​ກົດ​ລະ​ບຽບ​ທີ່​ເຫມາະ​ສົມ​ສໍາ​ລັບ​ການ​ ເຮັດໃຫ້
ອະ​ທິ​ບາຍ​ການ​ຂຶ້ນ​ກັບ​ໄຟລ​໌​ຕົ້ນ​ຕໍ​ຂອງ​. preprocessor ຜົນໄດ້ຮັບຫນຶ່ງ
ເຮັດໃຫ້ ກົດລະບຽບທີ່ມີຊື່ໄຟລ໌ວັດຖຸສໍາລັບໄຟລ໌ແຫຼ່ງນັ້ນ, ຈໍ້າສອງເມັດ, ແລະຊື່
ຂອງໄຟລ໌ທັງຫມົດລວມ, ລວມທັງໄຟລ໌ທີ່ມາຈາກ - ລວມ​ທັງ​ or - ໄອມາໂຄຣ ຄໍາ​ສັ່ງ -
ຕົວເລືອກສາຍ.

ເວັ້ນເສຍແຕ່ໄດ້ລະບຸຢ່າງຊັດເຈນ (ກັບ -MT or -MQ), ຊື່ໄຟລ໌ວັດຖຸປະກອບດ້ວຍ
ຊື່ຂອງໄຟລ໌ແຫຼ່ງທີ່ມີ suffix ແທນທີ່ດ້ວຍ object file suffix ແລະກັບໃດໆ
ເອົາພາກສ່ວນໄດເລກະທໍລີຊັ້ນນໍາ. ຖ້າມີຫຼາຍໄຟລ໌ລວມແລ້ວກົດລະບຽບແມ່ນ
ແບ່ງອອກເປັນຫຼາຍສາຍໂດຍໃຊ້ \- ແຖວໃໝ່. ກົດລະບຽບບໍ່ມີຄໍາສັ່ງ.

ຕົວເລືອກນີ້ບໍ່ໄດ້ສະກັດກັ້ນຜົນດີບັ໊ກຂອງຕົວປະມວນຜົນກ່ອນ, ເຊັ່ນ: -dM. ເພື່ອຫລີກລ້ຽງ
ການປະສົມຜົນດີບັກດັ່ງກ່າວກັບກົດລະບຽບການເພິ່ງພາອາໄສທີ່ທ່ານຄວນລະບຸຢ່າງຊັດເຈນ
ໄຟລ໌ຜົນຜະລິດຂຶ້ນກັບ -MF, ຫຼືໃຊ້ຕົວແປສະພາບແວດລ້ອມເຊັ່ນ
DEPENDENCIES_OUTPUT. ຜົນອອກມາດີບັ໊ກຈະຍັງຄົງຖືກສົ່ງໄປຫາກະແສຜົນຜະລິດປົກກະຕິ
ທຳ ມະດາ.

Passing -M ຫມາຍເຖິງຄົນຂັບລົດ -E, ແລະສະກັດກັ້ນການເຕືອນໄພໂດຍມີເຫດຜົນ -w.

ເອັມ ຄື -M ແຕ່ຢ່າກ່າວເຖິງໄຟລ໌ header ທີ່ພົບເຫັນຢູ່ໃນລະບົບ header directory,
ຫຼືໄຟລ໌ header ທີ່ຖືກລວມເຂົ້າ, ໂດຍກົງຫຼືໂດຍທາງອ້ອມ, ຈາກ header ດັ່ງກ່າວ.

ນີ້ຫມາຍຄວາມວ່າທາງເລືອກຂອງວົງເລັບມຸມຫຼືວົງຢືມຄູ່ໃນ an #include
ຄໍາສັ່ງບໍ່ໄດ້ຢູ່ໃນຕົວຂອງມັນເອງກໍານົດວ່າສ່ວນຫົວນັ້ນຈະປາກົດຢູ່ໃນ ເອັມ
ຜົນ​ຜະ​ລິດ​ທີ່​ອີງ​ໃສ່​. ນີ້ແມ່ນການປ່ຽນແປງເລັກນ້ອຍໃນ semantics ຈາກ GCC ຮຸ່ນ 3.0 ແລະ
ກ່ອນ ໜ້າ ນີ້.

-MF ເອກະສານ
ເມື່ອໃຊ້ກັບ -M or ເອັມ, ກໍານົດໄຟລ໌ທີ່ຈະຂຽນການຂຶ້ນກັບ. ຖ້າບໍ່ມີ -MF
switch ແມ່ນໃຫ້ preprocessor ສົ່ງກົດລະບຽບໄປຫາບ່ອນດຽວກັນທີ່ມັນຈະສົ່ງ
ຜົນຜະລິດທີ່ປຸງແຕ່ງກ່ອນ.

ເມື່ອໃຊ້ກັບຕົວເລືອກໄດເວີ -MD or -MMD, -MF overrides ການເພິ່ງພາອາໄສເລີ່ມຕົ້ນ
ໄຟລ໌ຜົນຜະລິດ.

-MG ໂດຍສົມທົບກັບທາງເລືອກເຊັ່ນ: -M ການ​ຮ້ອງ​ຂໍ​ການ​ຜະ​ລິດ​ທີ່​ເພິ່ງ​ພາ​ອາ​ໄສ​, -MG ສົມມຸດ
ໄຟລ໌ header ທີ່ຂາດຫາຍໄປແມ່ນໄຟລ໌ທີ່ສ້າງຂຶ້ນແລະເພີ່ມພວກມັນໃສ່ບັນຊີລາຍຊື່ການເພິ່ງພາອາໄສໂດຍບໍ່ມີ
ການ​ເພີ່ມ​ຄວາມ​ຜິດ​ພາດ​. ຊື່ໄຟລ໌ທີ່ເພິ່ງພາອາໄສແມ່ນເອົາໂດຍກົງຈາກ "#include"
ທິດ​ທາງ​ໂດຍ​ບໍ່​ມີ​ການ prepending ເສັ້ນ​ທາງ​ໃດ​ຫນຶ່ງ​. -MG ຍັງສະກັດກັ້ນຜົນຜະລິດທີ່ປຸງແຕ່ງກ່ອນ, ເປັນ
ໄຟລ໌ສ່ວນຫົວທີ່ຂາດຫາຍໄປເຮັດໃຫ້ນີ້ບໍ່ມີປະໂຫຍດ.

ຄຸນນະສົມບັດນີ້ຖືກນໍາໃຊ້ໃນການປັບປຸງອັດຕະໂນມັດຂອງ makefiles.

-MP ທາງເລືອກນີ້ແນະນໍາ CPP ເພື່ອເພີ່ມເປົ້າຫມາຍ phony ສໍາລັບແຕ່ລະ dependency ອື່ນນອກຈາກ
ໄຟລ໌ຕົ້ນຕໍ, ເຮັດໃຫ້ແຕ່ລະຄົນຂຶ້ນກັບບໍ່ມີຫຍັງ. ກົດລະບຽບ dummy ເຫຼົ່ານີ້ເຮັດວຽກກ່ຽວກັບຄວາມຜິດພາດ
ເຮັດໃຫ້ ໃຫ້ຖ້າຫາກວ່າທ່ານເອົາໄຟລ໌ header ໂດຍບໍ່ມີການປັບປຸງ makefile ກົງກັນ.

ນີ້ແມ່ນຜົນຜະລິດປົກກະຕິ:

test.o: test.c test.h

test.h:

-MT ເປົ້າ​ຫມາຍ
ປ່ຽນແປງເປົ້າຫມາຍຂອງກົດລະບຽບທີ່ປ່ອຍອອກມາໂດຍການຜະລິດການເພິ່ງພາອາໄສ. ໂດຍຄ່າເລີ່ມຕົ້ນ CPP ໃຊ້ເວລາ
ຊື່​ຂອງ​ໄຟລ​໌​ທີ່​ນໍາ​ເຂົ້າ​ຕົ້ນ​ຕໍ​, ລຶບ​ອົງ​ປະ​ກອບ​ລະ​ບົບ​ແລະ​ຄໍາ​ຕໍ່​ທ້າຍ​ໄຟລ​໌​ໃດ​ຫນຶ່ງ​
ເຊັ່ນ​ວ່າ .c, ແລະຕໍ່ທ້າຍຂອງວັດຖຸປົກກະຕິຂອງເວທີ. ຜົນໄດ້ຮັບແມ່ນເປົ້າຫມາຍ.

An -MT ທາງ​ເລືອກ​ຈະ​ຕັ້ງ​ເປົ້າ​ຫມາຍ​ໃຫ້​ແນ່​ນອນ​ສະ​ຕ​ຣິງ​ທີ່​ທ່ານ​ລະ​ບຸ​ໄວ້​. ຖ້າ​ເຈົ້າ​ຕ້ອງ​ການ
ເປົ້າຫມາຍຫຼາຍ, ທ່ານສາມາດກໍານົດໃຫ້ເຂົາເຈົ້າເປັນການໂຕ້ຖຽງດຽວກັບ -MT, ຫຼືໃຊ້ຫຼາຍອັນ
-MT ຕົວເລືອກ

ຍົກ​ຕົວ​ຢ່າງ, -MT '$(objpfx)foo.o' ອາດຈະໃຫ້

$(objpfx)foo.o: foo.c

-MQ ເປົ້າ​ຫມາຍ
ຄື​ກັນ​ກັບ -MT, ແຕ່ມັນອ້າງເຖິງຕົວລະຄອນໃດນຶ່ງທີ່ເປັນພິເສດເພື່ອເຮັດ.
-MQ '$(objpfx)foo.o' ເຮັດໃຫ້

$$(objpfx)foo.o: foo.c

ເປົ້າໝາຍເລີ່ມຕົ້ນຖືກອ້າງອີງໂດຍອັດຕະໂນມັດ, ຄືກັບວ່າມັນຖືກມອບໃຫ້ -MQ.

-MD -MD ເທົ່າກັບ -M -MF ເອກະສານ, ຍົກເວັ້ນນັ້ນ -E ບໍ່ໄດ້ຫມາຍຄວາມວ່າ. ຄົນຂັບລົດ
ກໍານົດ ເອກະສານ ອີງໃສ່ບໍ່ວ່າຈະເປັນ -o ທາງເລືອກແມ່ນໃຫ້. ຖ້າມັນເປັນ, ຄົນຂັບລົດໃຊ້ຂອງມັນ
ການໂຕ້ຖຽງແຕ່ມີ suffix ຂອງ .dຖ້າ​ບໍ່​ດັ່ງ​ນັ້ນ​ມັນ​ໃຊ້​ເວ​ລາ​ຊື່​ຂອງ​ໄຟລ​໌​ທີ່​ປ້ອນ​ຂໍ້​ມູນ​,
ເອົາອົງປະກອບຂອງໄດເລກະທໍລີແລະຄໍາຕໍ່ທ້າຍ, ແລະນໍາໃຊ້ a .d បច្ច័យ.

If -MD ແມ່ນໃຊ້ຮ່ວມກັບ -E, ໃດໆ -o switch ແມ່ນເຂົ້າໃຈເພື່ອລະບຸ
ໄຟລ​໌​ຜົນ​ຜະ​ລິດ​ທີ່​ອີງ​ໃສ່​, ແຕ່​ຖ້າ​ຫາກ​ວ່າ​ນໍາ​ໃຊ້​ໂດຍ​ບໍ່​ມີ​ການ​ -E, ແຕ່ລະຄົນ -o ແມ່ນເຂົ້າໃຈເພື່ອລະບຸ a
ໄຟລ໌ວັດຖຸເປົ້າໝາຍ.

ນັບຕັ້ງແຕ່ -E ບໍ່​ໄດ້​ຫມາຍ​ຄວາມ​ວ່າ​, -MD ສາມາດໃຊ້ເພື່ອສ້າງໄຟລ໌ຜົນຜະລິດທີ່ຂຶ້ນກັບເປັນ
ຜົນຂ້າງຄຽງຂອງຂະບວນການລວບລວມ.

-MMD
ຄື -MD ຍົກເວັ້ນການກ່າວເຖິງໄຟລ໌ສ່ວນຫົວຂອງຜູ້ໃຊ້ເທົ່ານັ້ນ, ບໍ່ແມ່ນໄຟລ໌ສ່ວນຫົວຂອງລະບົບ.

-x c
-x c ++
-x ຈຸດປະສົງ - ຄ
-x assembler-with-cpp
ລະບຸພາສາຕົ້ນສະບັບ: C, C++, Objective-C, ຫຼືການປະກອບ. ນີ້ບໍ່ມີຫຍັງເຮັດ
ມີການປະຕິບັດຕາມມາດຕະຖານຫຼືການຂະຫຍາຍ; ມັນພຽງແຕ່ເລືອກ syntax ພື້ນຖານໃດ
ຄາດຫວັງ. ຖ້າທ່ານບໍ່ໃຫ້ທາງເລືອກເຫຼົ່ານີ້, cpp ຈະ deduce ພາສາຈາກ
ສ່ວນຂະຫຍາຍຂອງໄຟລ໌ແຫຼ່ງ: .c, cc, .m, ຫຼື .S. ບາງສ່ວນຂະຫຍາຍທົ່ວໄປອື່ນໆສໍາລັບ
C ++ ແລະການປະກອບຍັງຖືກຮັບຮູ້. ຖ້າ cpp ບໍ່ຮັບຮູ້ການຂະຫຍາຍ, ມັນ
ຈະຮັກສາໄຟລ໌ເປັນ C; ນີ້ແມ່ນຮູບແບບທົ່ວໄປທີ່ສຸດ.

ຫມາຍ​ເຫດ​: ລຸ້ນກ່ອນໜ້າຂອງ cpp ຍອມຮັບ a - ພາສາ ທາງ​ເລືອກ​ທີ່​ເລືອກ​ທັງ​ສອງ​
ພາສາ ແລະລະດັບຄວາມສອດຄ່ອງຂອງມາດຕະຖານ. ທາງເລືອກນີ້ໄດ້ຖືກໂຍກຍ້າຍ, ເພາະວ່າ
ມັນຂັດແຍ້ງກັບ -l ທາງເລືອກ.

-std=ມາດຕະຖານ
-ansi
ລະບຸມາດຕະຖານທີ່ລະຫັດຄວນປະຕິບັດຕາມ. ປະຈຸ​ບັນ CPP ຮູ້​ກ່ຽວ​ກັບ C
ແລະມາດຕະຖານ C++; ຄົນອື່ນອາດຈະຖືກເພີ່ມໃນອະນາຄົດ.

ມາດຕະຖານ ອາດ​ຈະ​ເປັນ​ຫນຶ່ງ​ໃນ​:

"c90"
"c89"
"iso9899: 1990"
ມາດຕະຖານ ISO C ຈາກປີ 1990. c90 ແມ່ນ shorthand ປະເພນີສໍາລັບການສະບັບນີ້ຂອງ
ມາດຕະຖານ.

ໄດ້ -ansi ທາງເລືອກແມ່ນທຽບເທົ່າກັບ -std=c90.

"iso9899: 199409"
ມາດ​ຕະ​ຖານ C ປີ 1990, ດັ່ງ​ທີ່​ໄດ້​ປັບ​ປຸງ​ໃນ​ປີ 1994.

"iso9899: 1999"
"c99"
"iso9899: 199x"
"c9x"
ມາດຕະຖານ ISO C ສະບັບປັບປຸງ, ຈັດພີມມາໃນເດືອນທັນວາ 1999. ກ່ອນທີ່ຈະພິມເຜີຍແຜ່, ນີ້
ເປັນທີ່ຮູ້ຈັກເປັນ C9X.

"iso9899: 2011"
"c11"
"c1x"
ມາດຕະຖານ ISO C ສະບັບປັບປຸງ, ຈັດພີມມາໃນເດືອນທັນວາ 2011. ກ່ອນທີ່ຈະພິມເຜີຍແຜ່, ນີ້
ເປັນທີ່ຮູ້ຈັກເປັນ C1X.

"gnu90"
"gnu89"
ມາດຕະຖານ C 1990 ບວກກັບສ່ວນຂະຫຍາຍ GNU. ນີ້ແມ່ນຄ່າເລີ່ມຕົ້ນ.

"gnu99"
"gnu9x"
ມາດຕະຖານ C 1999 ບວກກັບສ່ວນຂະຫຍາຍ GNU.

"gnu11"
"gnu1x"
ມາດຕະຖານ C 2011 ບວກກັບສ່ວນຂະຫຍາຍ GNU.

"c++98"
ມາດຕະຖານ ISO C++ ປີ 1998 ບວກກັບການແກ້ໄຂ.

"gnu++98"
ຄື​ກັນ​ກັບ -std=c++98 ບວກກັບສ່ວນຂະຫຍາຍ GNU. ນີ້ແມ່ນຄ່າເລີ່ມຕົ້ນຂອງລະຫັດ C++.

-I- ແຍກເສັ້ນທາງລວມ. ໄດເລກະທໍລີໃດນຶ່ງທີ່ລະບຸດ້ວຍ -I ທາງເລືອກກ່ອນ -I- ມີ
ຄົ້ນຫາພຽງແຕ່ສ່ວນຫົວທີ່ຮ້ອງຂໍດ້ວຍ "#include"ໄຟລ໌""; ພວກເຂົາບໍ່ໄດ້ຄົ້ນຫາ
"#ລວມໄຟລ໌>". ຖ້າໄດເລກະທໍລີເພີ່ມເຕີມຖືກກໍານົດດ້ວຍ -I ທາງ​ເລືອກ​ຫຼັງ​ຈາກ​
-I-, ໄດເລກະທໍລີເຫຼົ່ານັ້ນຖືກຄົ້ນຫາທັງຫມົດ #include ທິດທາງ.

ເພີ່ມ​ເຕີມ, -I- inhibits ການ​ນໍາ​ໃຊ້​ຂອງ​ບັນ​ຊີ​ລາຍ​ການ​ໄຟລ​໌​ປະ​ຈຸ​ບັນ​ເປັນ​
ໄດເລກະທໍລີຄົ້ນຫາທໍາອິດສໍາລັບ "#include"ໄຟລ໌"".

ຕົວເລືອກນີ້ຖືກປະຕິເສດ.

-nostdinc
ຢ່າຄົ້ນຫາໄດເລກະທໍລີລະບົບມາດຕະຖານສໍາລັບໄຟລ໌ສ່ວນຫົວ. ພຽງແຕ່ໄດເລກະທໍລີ
ທ່ານ​ໄດ້​ລະ​ບຸ​ໄວ້​ກັບ​ -I ທາງເລືອກ (ແລະໄດເລກະທໍລີຂອງໄຟລ໌ປະຈຸບັນ, ຖ້າ
ທີ່ເຫມາະສົມ) ຖືກຄົ້ນຫາ.

-nostdinc++
ຢ່າຊອກຫາໄຟລ໌ header ໃນໄດເລກະທໍລີມາດຕະຖານສະເພາະ C++, ແຕ່ເຮັດຕໍ່ໄປ
ຄົ້ນຫາໄດເລກະທໍລີມາດຕະຖານອື່ນໆ. (ທາງ​ເລືອກ​ນີ້​ໄດ້​ຖືກ​ນໍາ​ໃຊ້​ໃນ​ເວ​ລາ​ທີ່​ການ​ກໍ່​ສ້າງ C ++​
ຫໍສະໝຸດ.)

- ລວມ​ທັງ​ ເອກະສານ
ຂະບວນການ ເອກະສານ ຄືກັບວ່າ "#include "file" ປາກົດເປັນແຖວທໍາອິດຂອງແຫຼ່ງຕົ້ນຕໍ
ໄຟລ໌. ຢ່າງໃດກໍຕາມ, ໄດເລກະທໍລີທໍາອິດຄົ້ນຫາ ເອກະສານ ແມ່ນ preprocessor ເຮັດວຽກ
ລະບົບ ແທນທີ່ຈະເປັນ of ໄດເລກະທໍລີທີ່ປະກອບດ້ວຍໄຟລ໌ຕົ້ນສະບັບ. ຖ້າບໍ່ພົບ
ຢູ່ທີ່ນັ້ນ, ມັນຖືກຄົ້ນຫາຢູ່ໃນສ່ວນທີ່ເຫລືອຂອງ "#include "..."" ລະບົບຕ່ອງໂສ້ຄົ້ນຫາ
ທຳ ມະດາ.

ຖ້າຫຼາຍ - ລວມ​ທັງ​ ທາງ​ເລືອກ​ແມ່ນ​ໄດ້​ຮັບ​, ໄຟລ​໌​ແມ່ນ​ລວມ​ຢູ່​ໃນ​ຄໍາ​ສັ່ງ​ທີ່​ເຂົາ​ເຈົ້າ​
ປາກົດຢູ່ໃນເສັ້ນຄໍາສັ່ງ.

- ໄອມາໂຄຣ ເອກະສານ
ຄືກັນ - ລວມ​ທັງ​, ຍົກເວັ້ນວ່າຜົນຜະລິດໃດໆທີ່ຜະລິດໂດຍການສະແກນ ເອກະສານ ຖືກຖີ້ມ
ຫ່າງ. Macros ມັນກໍານົດຍັງຄົງຖືກກໍານົດ. ນີ້ອະນຸຍາດໃຫ້ທ່ານສາມາດໄດ້ຮັບມະຫາພາກທັງຫມົດ
ຈາກສ່ວນຫົວໂດຍບໍ່ມີການປະມວນຜົນການປະກາດຂອງມັນ.

ໄຟລ໌ທັງໝົດທີ່ລະບຸໂດຍ - ໄອມາໂຄຣ ຖືກປະມວນຜົນກ່ອນໄຟລ໌ທັງໝົດທີ່ລະບຸໂດຍ - ລວມ​ທັງ​.

-idirafter dir
ຄົ້ນຫາ dir ສໍາລັບໄຟລ໌ header, ແຕ່ເຮັດມັນ ຫຼັງຈາກ ໄດເລກະທໍລີທັງໝົດທີ່ລະບຸດ້ວຍ -I ແລະ
ໄດເລກະທໍລີລະບົບມາດຕະຖານໝົດແລ້ວ. dir ຖືກປະຕິບັດເປັນລະບົບປະກອບມີ
ໄດເລກະທໍລີ. ຖ້າ dir ເລີ່ມຕົ້ນດ້ວຍ "=", ຈາກນັ້ນ "=" ຈະຖືກແທນທີ່ດ້ວຍ sysroot
ຄໍານໍາຫນ້າ; ເບິ່ງ --sysroot ແລະ -isysroot.

- ຄໍາ​ນິ​ຍາມ​ ຄຳ ນຳ ໜ້າ
ລະບຸວ່າ ຄຳ ນຳ ໜ້າ ເປັນຄໍານໍາຫນ້າສໍາລັບການຕໍ່ມາ -iwithprefix ທາງເລືອກ. ຖ້າຄໍານໍາຫນ້າ
ເປັນຕົວແທນຂອງໄດເລກະທໍລີ, ທ່ານຄວນປະກອບມີສຸດທ້າຍ /.

-iwithprefix dir
-iwithprefix ກ່ອນ dir
ເອກະສານຊ້ອນທ້າຍ dir ກັບຄໍານໍາຫນ້າທີ່ລະບຸໄວ້ກ່ອນຫນ້ານີ້ກັບ - ຄໍາ​ນິ​ຍາມ​, ແລະເພີ່ມຜົນໄດ້ຮັບ
ໄດເລກະທໍລີທີ່ປະກອບມີເສັ້ນທາງຄົ້ນຫາ. -iwithprefix ກ່ອນ ເອົາມັນຢູ່ໃນສະຖານທີ່ດຽວກັນ -I
ຈະ; -iwithprefix ວາງມັນໄວ້ບ່ອນໃດ -idirafter ຈະ.

-isysroot dir
ທາງເລືອກນີ້ແມ່ນຄ້າຍຄື --sysroot ທາງ​ເລືອກ​, ແຕ່​ນໍາ​ໃຊ້​ພຽງ​ແຕ່​ກັບ​ໄຟລ​໌ header (ຍົກ​ເວັ້ນ​ສໍາ​ລັບ​ການ​
Darwin ເປົ້າຫມາຍ, ບ່ອນທີ່ມັນໃຊ້ກັບທັງໄຟລ໌ header ແລະຫ້ອງສະຫມຸດ). ເບິ່ງ
--sysroot ທາງ​ເລືອກ​ສໍາ​ລັບ​ຂໍ້​ມູນ​ເພີ່ມ​ເຕີມ​.

-Imultilib dir
ການນໍາໃຊ້ dir ເປັນໄດເລກະທໍລີຍ່ອຍຂອງໄດເລກະທໍລີທີ່ມີສ່ວນຫົວ C++ ສະເພາະເປົ້າໝາຍ.

- ລະບົບ dir
ຄົ້ນຫາ dir ສໍາລັບໄຟລ໌ header, ຫຼັງຈາກໄດເລກະທໍລີທັງຫມົດທີ່ລະບຸໂດຍ -I ແຕ່ກ່ອນ
ໄດເລກະທໍລີລະບົບມາດຕະຖານ. ໝາຍມັນເປັນລະບົບລະບົບ, ເພື່ອໃຫ້ມັນຄືກັນ
ການປິ່ນປົວພິເສດທີ່ຖືກນໍາໃຊ້ກັບລະບົບມາດຕະຖານ.

If dir ເລີ່ມຕົ້ນດ້ວຍ "=", ຫຼັງຈາກນັ້ນ "=" ຈະຖືກແທນທີ່ດ້ວຍຄໍານໍາຫນ້າ sysroot; ເບິ່ງ
--sysroot ແລະ -isysroot.

-iquote dir
ຄົ້ນຫາ dir ສະເພາະໄຟລ໌ສ່ວນຫົວທີ່ຮ້ອງຂໍດ້ວຍ "#include"ໄຟລ໌""; ພວກ​ເຂົ້າ​ບໍ່​ແມ່ນ
ຄົ້ນຫາສໍາລັບ "#includeໄຟລ໌>", ກ່ອນທີ່ຈະໄດເລກະທໍລີທັງຫມົດທີ່ກໍານົດໂດຍ -I ແລະກ່ອນ
ໄດເລກະທໍລີລະບົບມາດຕະຖານ.

If dir ເລີ່ມຕົ້ນດ້ວຍ "=", ຫຼັງຈາກນັ້ນ "=" ຈະຖືກແທນທີ່ດ້ວຍຄໍານໍາຫນ້າ sysroot; ເບິ່ງ
--sysroot ແລະ -isysroot.

-fdirectives ເທົ່ານັ້ນ
ເມື່ອປະມວນຜົນກ່ອນ, ຈັດການຄຳສັ່ງ, ແຕ່ຢ່າຂະຫຍາຍມະຫາພາກ.

ພຶດຕິກໍາຂອງທາງເລືອກແມ່ນຂຶ້ນກັບ -E ແລະ -fpreprocessed ຕົວເລືອກ

ກັບ -E, preprocessing ແມ່ນຈໍາກັດພຽງແຕ່ການຈັດການຄໍາສັ່ງເຊັ່ນ "#define",
"#ifdef", ແລະ "#error". ການດໍາເນີນງານ preprocessor ອື່ນໆ, ເຊັ່ນ: ການຂະຫຍາຍມະຫາພາກແລະ
ການແປງ trigraph ບໍ່ໄດ້ປະຕິບັດ. ນອກຈາກນັ້ນ, ໄດ້ -dD ທາງເລືອກແມ່ນ implicitly
enabled

ກັບ -fpreprocessed, ຄໍານິຍາມຂອງເສັ້ນຄໍາສັ່ງແລະ macro builtin ຫຼາຍທີ່ສຸດແມ່ນ
ຄົນພິການ. Macros ເຊັ່ນ "__LINE__", ເຊິ່ງຂຶ້ນກັບບໍລິບົດ, ຖືກຈັດການ
ປົກກະຕິ. ນີ້ເຮັດໃຫ້ການລວບລວມໄຟລ໌ທີ່ປຸງແຕ່ງກ່ອນຫນ້າດ້ວຍ "-E
-fdirectives ເທົ່ານັ້ນ".

ກັບທັງສອງ -E ແລະ -fpreprocessed, ກົດລະບຽບສໍາລັບ -fpreprocessed ເອົາຄວາມສຳຄັນ. ນີ້
ເຮັດ​ໃຫ້​ການ​ປຸງ​ແຕ່ງ​ເຕັມ​ທີ່​ຂອງ​ໄຟລ​໌​ທີ່​ຜ່ານ​ມາ preprocessed ກັບ "-E
-fdirectives ເທົ່ານັ້ນ".

-fdollars-in-identifiers
ຍອມຮັບ $ ໃນຕົວລະບຸ.

-fextended-identifiers
ຍອມຮັບຊື່ຕົວອັກສອນທົ່ວໄປໃນຕົວລະບຸ. ຕົວເລືອກນີ້ຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ
ສຳລັບ C99 (ແລະ ຮຸ່ນ C ມາດຕະຖານຕໍ່ມາ) ແລະ C++.

-fno-canonical-system-headers
ເມື່ອການປະມວນຜົນກ່ອນ, ຢ່າຫຍໍ້ເສັ້ນທາງສ່ວນຫົວຂອງລະບົບດ້ວຍ canonicalization.

-fpreprocessed
ຊີ້ບອກກັບໂປເຊດເຊີ preprocessor ວ່າໄຟລ໌ input ໄດ້ຖືກປຸງແຕ່ງແລ້ວ. ນີ້
ສະກັດກັ້ນສິ່ງຕ່າງໆເຊັ່ນ: ການຂະຫຍາຍມະຫາພາກ, ການແປງ trigraph, ຫຼຸດພົ້ນຈາກການເຊື່ອມແຖວໃໝ່,
ແລະການປຸງແຕ່ງຄໍາສັ່ງສ່ວນໃຫຍ່. preprocessor ຍັງຮັບຮູ້ແລະເອົາອອກ
ຄໍາເຫັນ, ດັ່ງນັ້ນທ່ານສາມາດຜ່ານໄຟລ໌ preprocessed ກັບ -C ກັບ compiler ໂດຍບໍ່ມີການ
ບັນຫາ. ໃນຮູບແບບນີ້, preprocessor ປະສົມປະສານແມ່ນຫຼາຍກ່ວາ tokenizer ເລັກນ້ອຍ
ສໍາລັບດ້ານຫນ້າ.

-fpreprocessed ແມ່ນ implicit ຖ້າໄຟລ໌ input ມີຫນຶ່ງຂອງນາມສະກຸນ .i, .ii or .ໄມ.
ເຫຼົ່ານີ້ແມ່ນສ່ວນຂະຫຍາຍທີ່ GCC ໃຊ້ສໍາລັບໄຟລ໌ທີ່ສ້າງຂຶ້ນກ່ອນການປຸງແຕ່ງ - save-temps​.

-ftabstop=width
ກໍານົດໄລຍະຫ່າງລະຫວ່າງແຖບຢຸດ. ນີ້ຊ່ວຍໃຫ້ຕົວປະມວນຜົນກ່ອນລາຍງານຖັນທີ່ຖືກຕ້ອງ
ຕົວເລກໃນຄໍາເຕືອນຫຼືຄວາມຜິດພາດ, ເຖິງແມ່ນວ່າແຖບຈະປາກົດຢູ່ໃນເສັ້ນ. ຖ້າມູນຄ່າຫນ້ອຍລົງ
ຫຼາຍກວ່າ 1 ຫຼືຫຼາຍກວ່າ 100, ທາງເລືອກແມ່ນຖືກລະເລີຍ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 8.

-fdebug-cpp
ທາງເລືອກນີ້ແມ່ນເປັນປະໂຫຍດພຽງແຕ່ສໍາລັບການ debugging GCC. ເມື່ອໃຊ້ກັບ -E, dumps debugging
ຂໍ້ມູນກ່ຽວກັບແຜນທີ່ສະຖານທີ່. ທຸກໆ token ໃນຜົນຜະລິດແມ່ນນໍາຫນ້າໂດຍການ dump ຂອງ
ແຜນ​ທີ່​ທີ່​ຕັ້ງ​ຂອງ​ຕົນ​ເປັນ​ຂອງ​. ການຖິ້ມຂີ້ເຫຍື້ອຂອງແຜນທີ່ຖືສະຖານທີ່ຂອງ token
ຈະເປັນ:

{"P":F ;"F":F ;"L": ;"C": ;"S": ;"M": ;"E": "loc": }

ເມື່ອນໍາໃຊ້ໂດຍບໍ່ມີການ -E, ທາງເລືອກນີ້ບໍ່ມີຜົນກະທົບ.

-ftrack-macro-ຂະຫຍາຍ[=ລະດັບ]
ຕິດຕາມສະຖານທີ່ຂອງໂທເຄັນໃນທົ່ວການຂະຫຍາຍຕົວມະຫາພາກ. ນີ້ອະນຸຍາດໃຫ້ compiler ປ່ອຍອອກມາ
ການວິນິໄສກ່ຽວກັບ stack macro expansion stack ໃນປະຈຸບັນເມື່ອມີຂໍ້ຜິດພາດໃນການລວບລວມຂໍ້ມູນເກີດຂຶ້ນ
ການຂະຫຍາຍຕົວມະຫາພາກ. ການນໍາໃຊ້ທາງເລືອກນີ້ເຮັດໃຫ້ preprocessor ແລະ compiler ບໍລິໂພກ
ຄວາມຊົງຈໍາຫຼາຍ. ໄດ້ ລະດັບ ພາລາມິເຕີສາມາດນໍາໃຊ້ເພື່ອເລືອກລະດັບຄວາມແມ່ນຍໍາຂອງ token
ການຕິດຕາມສະຖານທີ່ດັ່ງນັ້ນຈຶ່ງຫຼຸດລົງການບໍລິໂພກຫນ່ວຍຄວາມຈໍາຖ້າຈໍາເປັນ. ມູນຄ່າ 0 of
ລະດັບ de-activates ທາງເລືອກນີ້ຄືກັບວ່າບໍ່ມີ -ftrack-macro-ຂະຫຍາຍ ມີຢູ່
ເສັ້ນຄໍາສັ່ງ. ມູນຄ່າ 1 ຕິດ​ຕາມ​ສະ​ຖານ​ທີ່ tokens ໃນ​ຮູບ​ແບບ​ຊຸດ​ໂຊມ​ສໍາ​ລັບ​ຄວາມ​ສາ​ມາດ​ຂອງ​
ຫນ່ວຍຄວາມຈໍາຫນ້ອຍທີ່ສຸດ overhead. ໃນ​ຮູບ​ແບບ​ນີ້ tokens ທັງ​ຫມົດ​ທີ່​ເປັນ​ຜົນ​ມາ​ຈາກ​ການ​ຂະ​ຫຍາຍ​ຕົວ​ຂອງ​
argument ຂອງ macro ຄ້າຍຄືຟັງຊັນມີສະຖານທີ່ດຽວກັນ. ມູນຄ່າ 2 ຕິດ​ຕາມ tokens
ສະຖານທີ່ຢ່າງສົມບູນ. ຄ່ານີ້ແມ່ນຄວາມຊົງຈໍາທີ່ຫິວທີ່ສຸດ. ເມື່ອທາງເລືອກນີ້ຖືກມອບໃຫ້
ບໍ່ມີການໂຕ້ຖຽງ, ຄ່າພາລາມິເຕີເລີ່ມຕົ້ນແມ່ນ 2.

ໃຫ້ສັງເກດວ່າ "-ftrack-macro-expansion=2" ຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ.

-fexec-charset=ສາຍໄຟ
ກໍານົດຊຸດຕົວອັກສອນການປະຕິບັດ, ໃຊ້ສໍາລັບຄວາມຄົງທີ່ຂອງສະຕຣິງແລະຕົວອັກສອນ. ຄ່າເລີ່ມຕົ້ນ
ແມ່ນ UTF-8. ສາຍໄຟ ສາມາດເປັນການເຂົ້າລະຫັດໃດໆທີ່ສະຫນັບສະຫນູນໂດຍຫ້ອງສະຫມຸດ "iconv" ຂອງລະບົບ
ປົກກະຕິ.

-fwide-exec-charset=ສາຍໄຟ
ກໍານົດຊຸດຕົວອັກສອນການປະຕິບັດກວ້າງ, ໃຊ້ສໍາລັບສະຕຣິງກວ້າງແລະຄ່າຄົງທີ່ຂອງຕົວອັກສອນ.
ຄ່າເລີ່ມຕົ້ນແມ່ນ UTF-32 ຫຼື UTF-16, ອັນໃດກໍ່ຕາມທີ່ກົງກັບຄວາມກວ້າງຂອງ "wchar_t". ເປັນ
ກັບ -fexec-charset, ສາຍໄຟ ສາມາດເປັນການເຂົ້າລະຫັດໃດໆທີ່ສະຫນັບສະຫນູນໂດຍ "iconv" ຂອງລະບົບ.
ຫໍສະໝຸດ; ແນວໃດກໍ່ຕາມ, ທ່ານຈະມີບັນຫາກັບການເຂົ້າລະຫັດທີ່ບໍ່ເຫມາະ
ແທ້ໃນ "wchar_t".

-finput-charset=ສາຍໄຟ
ຕັ້ງຄ່າຊຸດຕົວອັກສອນທີ່ປ້ອນເຂົ້າ, ໃຊ້ສຳລັບການແປຈາກຊຸດຕົວອັກສອນຂອງຕົວປ້ອນຂໍ້ມູນ
ໄຟລ໌ໄປຫາຕົວອັກສອນຕົ້ນສະບັບທີ່ກໍານົດໄວ້ໂດຍ GCC. ຖ້າທ້ອງຖິ່ນບໍ່ໄດ້ລະບຸ, ຫຼື GCC
ບໍ່ສາມາດໄດ້ຮັບຂໍ້ມູນນີ້ຈາກທ້ອງຖິ່ນ, ຄ່າເລີ່ມຕົ້ນແມ່ນ UTF-8. ນີ້ສາມາດເປັນ
ແທນທີ່ໂດຍສະຖານທີ່ ຫຼືຕົວເລືອກແຖວຄຳສັ່ງນີ້. ໃນປັດຈຸບັນຄໍາສັ່ງ -
ຕົວເລືອກແຖວຈະມີຄວາມສຳຄັນກວ່າຖ້າມີຂໍ້ຂັດແຍ່ງ. ສາຍໄຟ ສາມາດເຂົ້າລະຫັດໃດໆ
ສະຫນັບສະຫນູນໂດຍປົກກະຕິຫ້ອງສະຫມຸດ "iconv" ຂອງລະບົບ.

-fworking-directory
ເປີດໃຊ້ການສ້າງຕົວໝາຍແຖວໃນຜົນອອກຂອງໂປເຊດເຊີ preprocessor ທີ່ຈະປ່ອຍໃຫ້ compiler ໄດ້
ຮູ້ຈັກໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນໃນເວລາຂອງການປຸງແຕ່ງກ່ອນ. ໃນເວລາທີ່ທາງເລືອກນີ້ແມ່ນ
ເປີດໃຊ້ງານແລ້ວ, ຕົວປະມວນຜົນກ່ອນຈະປ່ອຍອອກມາ, ຫຼັງຈາກເຄື່ອງໝາຍແຖວເບື້ອງຕົ້ນ, ເປັນເຄື່ອງໝາຍແຖວທີສອງ
ກັບໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນຕິດຕາມດ້ວຍສອງເຄື່ອງຊ້ອນ. GCC ຈະໃຊ້ອັນນີ້
ໄດເລກະທໍລີ, ເມື່ອມັນມີຢູ່ໃນວັດສະດຸປ້ອນທີ່ປຸງແຕ່ງກ່ອນ, ເປັນໄດເລກະທໍລີທີ່ປ່ອຍອອກມາ
ໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນຢູ່ໃນບາງຮູບແບບຂໍ້ມູນການດີບັກ. ທາງເລືອກນີ້ແມ່ນ
ເປີດໃຊ້ implicitly ຖ້າຂໍ້ມູນ debugging ຖືກເປີດໃຊ້, ແຕ່ນີ້ສາມາດຖືກຍັບຍັ້ງໄດ້
ແບບຟອມທີ່ຖືກປະຕິເສດ -fno-working-directoryທີ່ຢູ່ ຖ້າຫາກວ່າ -P ທຸງມີຢູ່ໃນຄໍາສັ່ງ
ເສັ້ນ, ທາງເລືອກນີ້ບໍ່ມີຜົນ, ເພາະວ່າບໍ່ມີຄໍາສັ່ງ "#line" ຖືກປ່ອຍອອກມາຢ່າງໃດກໍ່ຕາມ.

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

-A ຄາດຄະເນ=ຄໍາຕອບ
ເຮັດການຢືນຢັນກັບ predicate ໄດ້ ຄາດຄະເນ ແລະຕອບ ຄໍາຕອບ. ແບບຟອມນີ້ແມ່ນ
ຕ້ອງການຮູບແບບເກົ່າ -A ຄາດຄະເນ(ຄໍາຕອບ), ທີ່ຍັງສະຫນັບສະຫນູນ, ເນື່ອງຈາກວ່າມັນ
ບໍ່ໄດ້ໃຊ້ຕົວອັກສອນພິເສດຂອງແກະ.

-A -ຄາດຄະເນ=ຄໍາຕອບ
ຍົກເລີກການຢືນຢັນກັບ predicate ຄາດຄະເນ ແລະຕອບ ຄໍາຕອບ.

-dCHARS
CHARS ແມ່ນລຳດັບໜຶ່ງ ຫຼືຫຼາຍກວ່າໜຶ່ງຕົວໜັງສືຕໍ່ໄປນີ້, ແລະຕ້ອງບໍ່ແມ່ນ
ນຳໜ້າດ້ວຍຊ່ອງ. ຕົວອັກສອນອື່ນໆຖືກຕີຄວາມໂດຍ compiler ທີ່ເຫມາະສົມ, ຫຼື
ສະຫງວນໄວ້ສໍາລັບ GCC ຮຸ່ນໃນອະນາຄົດ, ແລະດັ່ງນັ້ນຈິ່ງຖືກລະເລີຍຢ່າງງຽບໆ. ຖ້າທ່ານລະບຸ
ຕົວ​ອັກ​ສອນ​ທີ່​ມີ​ພຶດ​ຕິ​ກໍາ​ຂັດ​ແຍ່ງ​ກັນ​, ຜົນ​ໄດ້​ຮັບ​ແມ່ນ​ບໍ່​ໄດ້​ກໍາ​ນົດ​.

M ແທນທີ່ຈະເປັນຜົນຜະລິດປົກກະຕິ, ສ້າງບັນຊີລາຍຊື່ຂອງ #ກໍານົດ ຄໍາແນະນໍາສໍາລັບທຸກຄົນ
macros ກໍານົດໃນລະຫວ່າງການດໍາເນີນການຂອງ preprocessor, ລວມທັງ predefined
ມະຫາພາກ. ນີ້ເຮັດໃຫ້ທ່ານມີວິທີການຊອກຫາສິ່ງທີ່ຖືກກໍານົດໄວ້ລ່ວງຫນ້າໃນສະບັບຂອງທ່ານ
ໂປເຊດເຊີກ່ອນ. ສົມມຸດວ່າທ່ານບໍ່ມີໄຟລ໌ foo.h, ຄໍາສັ່ງ

ແຕະ foo.h ; cpp -dM foo.h

ຈະສະແດງ macro ທີ່ກໍານົດໄວ້ກ່ອນທັງຫມົດ.

ຖ້າຫາກວ່າທ່ານນໍາໃຊ້ -dM ໂດຍບໍ່ມີການ -E ທາງເລືອກ, -dM ຖືກຕີຄວາມຫມາຍເປັນຄໍາສັບຄ້າຍຄື
-fdump-rtl-mach.

D ຄື M ຍົກເວັ້ນໃນສອງດ້ານ: ມັນເຮັດ ບໍ່ ປະກອບມີ macro ທີ່ກໍານົດໄວ້ກ່ອນ, ແລະມັນ
ຜົນໄດ້ຮັບ ທັງສອງ ໄດ້ #ກໍານົດ ຄໍາແນະນໍາແລະຜົນຂອງການປຸງແຕ່ງກ່ອນ. ທັງສອງປະເພດ
ຂອງຜົນຜະລິດໄປຫາໄຟລ໌ຜົນຜະລິດມາດຕະຖານ.

N ຄື D, ແຕ່ປ່ອຍພຽງແຕ່ຊື່ມະຫາພາກ, ບໍ່ແມ່ນການຂະຫຍາຍຂອງມັນ.

I ຜົນຜະລິດ #include ຄໍາແນະນໍານອກເຫນືອໄປຈາກຜົນຂອງການປຸງແຕ່ງກ່ອນ.

U ຄື D ຍົກ​ເວັ້ນ​ພຽງ​ແຕ່​ມະ​ໂຄ​ທີ່​ໄດ້​ຮັບ​ການ​ຂະ​ຫຍາຍ​, ຫຼື​ການ​ກໍາ​ນົດ​ຂອງ​ການ​ທົດ​ສອບ​
ໃນຄໍາສັ່ງ preprocessor, ແມ່ນຜົນຜະລິດ; ຜົນຜະລິດແມ່ນຊັກຊ້າຈົນກ່ວາການນໍາໃຊ້ຫຼື
ການທົດສອບມະຫາພາກ; ແລະ #ສຸດຍອດ ທິດທາງແມ່ນຜົນຜະລິດສໍາລັບ macros ທົດສອບແຕ່
ບໍ່ໄດ້ກໍານົດໃນເວລານັ້ນ.

-P ຍັບຍັ້ງການສ້າງຕົວໝາຍແຖວໃນຜົນຜະລິດຈາກໂປຣເຊສເຊີກ່ອນ. ນີ້ອາດຈະເປັນ
ເປັນປະໂຫຍດໃນເວລາທີ່ແລ່ນ preprocessor ກ່ຽວກັບບາງສິ່ງບາງຢ່າງທີ່ບໍ່ແມ່ນລະຫັດ C, ແລະຈະຖືກສົ່ງໄປ
ກັບໂຄງການທີ່ອາດຈະສັບສົນໂດຍ linemarkers.

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

ທ່ານຄວນກຽມພ້ອມສໍາລັບຜົນຂ້າງຄຽງໃນເວລາທີ່ໃຊ້ -C; ມັນເຮັດໃຫ້ preprocessor ໄດ້
ປະຕິບັດຄໍາຄິດເຫັນເປັນ token ໃນສິດທິຂອງຕົນເອງ. ຕົວຢ່າງ, ຄໍາເຫັນທີ່ປາກົດຢູ່
ການເລີ່ມຕົ້ນຂອງສິ່ງທີ່ຈະເປັນເສັ້ນຄໍາສັ່ງມີຜົນກະທົບຂອງການປ່ຽນເສັ້ນນັ້ນເປັນ
ເສັ້ນແຫຼ່ງທໍາມະດາ, ນັບຕັ້ງແຕ່ token ທໍາອິດໃນເສັ້ນບໍ່ແມ່ນ #.

-CC ຢ່າປະຖິ້ມຄໍາເຫັນ, ລວມທັງໃນລະຫວ່າງການຂະຫຍາຍມະຫາພາກ. ນີ້ແມ່ນຄ້າຍຄື -C, ຍົກເວັ້ນ
ຄໍາຄິດຄໍາເຫັນທີ່ມີຢູ່ໃນ macro ຍັງຖືກສົ່ງຜ່ານໄປຫາໄຟລ໌ຜົນຜະລິດທີ່
ມະຫາພາກໄດ້ຖືກຂະຫຍາຍ.

ນອກ​ເຫນືອ​ໄປ​ຈາກ​ຜົນ​ກະ​ທົບ​ຂ້າງ​ຄຽງ​ຂອງ​ -C ທາງເລືອກ, ໄດ້ -CC ທາງເລືອກເຮັດໃຫ້ C++-style ທັງໝົດ
ຄຳເຫັນພາຍໃນມະຫາພາກທີ່ຈະປ່ຽນເປັນຄຳເຫັນແບບ C. ນີ້ແມ່ນເພື່ອປ້ອງກັນບໍ່ໃຫ້ຕໍ່ມາ
ການນໍາໃຊ້ມະຫາພາກຈາກການສະແດງຄວາມຄິດເຫັນທີ່ບໍ່ໄດ້ຕັ້ງໃຈອອກສ່ວນທີ່ເຫຼືອຂອງສາຍແຫຼ່ງ.

ໄດ້ -CC ທາງເລືອກແມ່ນຖືກນໍາໃຊ້ໂດຍທົ່ວໄປເພື່ອສະຫນັບສະຫນູນຄໍາເຫັນ lint.

-cpp
ພະຍາຍາມຮຽນແບບພຶດຕິກໍາຂອງໂປເຊດເຊີ C preprocessors ແບບເກົ່າ, ກົງກັນຂ້າມກັບ ISO C
ໂປເຊດເຊີກ່ອນ.

-trigraphs
ຂະບວນການລໍາດັບ trigraph.

-remap
ເປີດ​ໃຊ້​ງານ​ລະ​ຫັດ​ພິ​ເສດ​ເພື່ອ​ເຮັດ​ວຽກ​ກ່ຽວ​ກັບ​ລະ​ບົບ​ໄຟລ​໌​ທີ່​ອະ​ນຸ​ຍາດ​ໃຫ້​ພຽງ​ແຕ່​ໄຟລ​໌​ສັ້ນ​ຫຼາຍ​
ຊື່, ເຊັ່ນ MS-DOS.

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

-v ໂຫມດ verbose. ພິມເລກສະບັບຂອງ GNU CPP ໃນຕອນເລີ່ມຕົ້ນຂອງການປະຕິບັດ, ແລະ
ລາຍງານຮູບແບບສຸດທ້າຍຂອງເສັ້ນທາງລວມ.

-H ພິມຊື່ຂອງແຕ່ລະ header file ທີ່ໃຊ້, ນອກຈາກກິດຈະກໍາປົກກະຕິອື່ນໆ. ແຕ່ລະ
ຊື່ແມ່ນ indented ເພື່ອສະແດງໃຫ້ເຫັນວ່າເລິກຢູ່ໃນ #include stack ມັນແມ່ນ. ສ່ວນຫົວທີ່ກຽມໄວ້ແລ້ວ
ໄຟລ໌ຍັງຖືກພິມອອກ, ເຖິງແມ່ນວ່າພວກເຂົາຖືກພົບເຫັນວ່າບໍ່ຖືກຕ້ອງ; precompiled ບໍ່ຖືກຕ້ອງ
ໄຟລ໌ຫົວແມ່ນພິມດ້ວຍ ...x ແລະອັນທີ່ຖືກຕ້ອງກັບ ...! .

-ການປ່ຽນແປງ
- ການປ່ຽນແປງ
ພິມໝາຍເລກລຸ້ນຂອງ GNU CPP. ດ້ວຍເຄື່ອງໝາຍດຽວ, ດຳເນີນການກ່ອນການປະມວນຜົນຕາມປົກກະຕິ.
ດ້ວຍສອງຂີດ, ອອກໄປທັນທີ.

ENVIRONMENT


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

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

CPATH
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH
ຄ່າຂອງແຕ່ລະຕົວແປແມ່ນບັນຊີລາຍຊື່ຂອງໄດເລກະທໍລີທີ່ແຍກອອກໂດຍລັກສະນະພິເສດ, ຫຼາຍ
ຄື PATH, ໃນທີ່ຈະຊອກຫາໄຟລ໌ header. ລັກ​ສະ​ນະ​ພິ​ເສດ​,
"PATH_SEPARATOR", ແມ່ນຂຶ້ນກັບເປົ້າໝາຍ ແລະກຳນົດໃນເວລາສ້າງ GCC. ສໍາລັບ Microsoft
ເປົ້າຫມາຍທີ່ອີງໃສ່ Windows ມັນເປັນ semicolon, ແລະສໍາລັບເກືອບທັງຫມົດເປົ້າຫມາຍອື່ນໆມັນແມ່ນ a
ຈໍ້າສອງເມັດ.

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

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

ໃນຕົວແປທັງຫມົດເຫຼົ່ານີ້, ອົງປະກອບທີ່ຫວ່າງເປົ່າຈະສັ່ງໃຫ້ compiler ຄົ້ນຫາປັດຈຸບັນຂອງມັນ
ໄດເລກະທໍລີເຮັດວຽກ. ອົງປະກອບຫວ່າງເປົ່າສາມາດປາກົດຢູ່ໃນຕອນຕົ້ນ ຫຼືຈຸດສິ້ນສຸດຂອງເສັ້ນທາງ. ສໍາລັບ
ຕົວຢ່າງ, ຖ້າມູນຄ່າຂອງ CPATH ແມ່ນ ":/special/include", ທີ່ມີຜົນກະທົບດຽວກັນກັບ
- ນ. -I / ພິເສດ / ລວມ.

DEPENDENCIES_OUTPUT
ຖ້າຕົວແປນີ້ຖືກຕັ້ງ, ມູນຄ່າຂອງມັນກໍານົດວິທີການສົ່ງອອກການເພິ່ງພາອາໄສສໍາລັບ Make based
ຢູ່ໃນໄຟລ໌ header ທີ່ບໍ່ແມ່ນລະບົບທີ່ປະມວນຜົນໂດຍ compiler. ໄຟລ໌ສ່ວນຫົວຂອງລະບົບແມ່ນ
ຖືກລະເລີຍໃນຜົນຜະລິດການເພິ່ງພາອາໄສ.

ມູນຄ່າຂອງ DEPENDENCIES_OUTPUT ສາມາດເປັນພຽງແຕ່ຊື່ໄຟລ໌, ໃນກໍລະນີນີ້ກົດລະບຽບ Make
ຖືກຂຽນໃສ່ໄຟລ໌ນັ້ນ, ຄາດເດົາຊື່ເປົ້າຫມາຍຈາກຊື່ໄຟລ໌ແຫຼ່ງ. ຫຼື
ຄ່າສາມາດມີແບບຟອມ ເອກະສານ ເປົ້າ​ຫມາຍ, ໃນກໍລະນີກົດລະບຽບແມ່ນຂຽນເພື່ອຍື່ນ ເອກະສານ
ການນໍາໃຊ້ ເປົ້າ​ຫມາຍ ເປັນ​ຊື່​ເປົ້າ​ຫມາຍ​.

ໃນຄໍາສັບຕ່າງໆອື່ນໆ, ຕົວແປສະພາບແວດລ້ອມນີ້ແມ່ນທຽບເທົ່າກັບການສົມທົບທາງເລືອກ ເອັມ
ແລະ -MF, ມີທາງເລືອກ -MT ສະຫຼັບຄືກັນ.

SUNPRO_DEPENDENCIES
ຕົວແປນີ້ແມ່ນຄືກັນກັບ DEPENDENCIES_OUTPUT (ເບິ່ງຂ້າງເທິງ), ຍົກເວັ້ນລະບົບນັ້ນ
ໄຟລ໌ header ບໍ່ໄດ້ຖືກລະເລີຍ, ສະນັ້ນມັນຫມາຍຄວາມວ່າ -M ແທນ​ທີ່​ຈະ ເອັມທີ່ຢູ່ ຢ່າງໃດກໍ່ຕາມ, ໄດ້
ການເພິ່ງພາອາໄສໄຟລ໌ປ້ອນຂໍ້ມູນຕົ້ນຕໍແມ່ນຖືກລະເວັ້ນ.

ໃຊ້ mips64-linux-gnuabi64-cpp-5 ອອນລາຍໂດຍໃຊ້ການບໍລິການ onworks.net


Ad


Ad

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