ນີ້ແມ່ນຄໍາສັ່ງ aarch64-linux-gnu-cpp-4.9 ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ 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++.
-AND- ແຍກເສັ້ນທາງລວມ. ໄດເລກະທໍລີໃດນຶ່ງທີ່ລະບຸດ້ວຍ -I ທາງເລືອກກ່ອນ -AND- ມີ
ຄົ້ນຫາພຽງແຕ່ສ່ວນຫົວທີ່ຮ້ອງຂໍດ້ວຍ "#include"ໄຟລ໌""; ພວກເຂົາບໍ່ໄດ້ຄົ້ນຫາ
"#ລວມໄຟລ໌>". ຖ້າໄດເລກະທໍລີເພີ່ມເຕີມຖືກກໍານົດດ້ວຍ -I ທາງເລືອກຫຼັງຈາກ
-AND-, ໄດເລກະທໍລີເຫຼົ່ານັ້ນຖືກຄົ້ນຫາທັງຫມົດ #include ທິດທາງ.
ເພີ່ມເຕີມ, -AND- 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
ຍອມຮັບຊື່ຕົວອັກສອນທົ່ວໄປໃນຕົວລະບຸ. ທາງເລືອກນີ້ແມ່ນທົດລອງ; ຢູ່ໃນ
GCC ຮຸ່ນໃນອະນາຄົດ, ມັນຈະຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນສໍາລັບ C99 ແລະ 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. ນີ້ສາມາດເປັນ
overridden ໂດຍທັງ locale ຫຼືຕົວເລືອກເສັ້ນຄໍາສັ່ງນີ້. ໃນປັດຈຸບັນຄໍາສັ່ງ
ຕົວເລືອກແຖວຈະມີຄວາມສຳຄັນກວ່າຖ້າມີຂໍ້ຂັດແຍ່ງ. ສາຍໄຟ ສາມາດເຂົ້າລະຫັດໃດໆ
ສະຫນັບສະຫນູນໂດຍປົກກະຕິຫ້ອງສະຫມຸດ "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 ແທນທີ່ຈະ ເອັມທີ່ຢູ່ ຢ່າງໃດກໍ່ຕາມ, ໄດ້
ການເພິ່ງພາອາໄສໄຟລ໌ປ້ອນຂໍ້ມູນຕົ້ນຕໍແມ່ນຖືກລະເວັ້ນ.
ໃຊ້ aarch64-linux-gnu-cpp-4.9 ອອນໄລນ໌ໂດຍໃຊ້ການບໍລິການ onworks.net