ນີ້ແມ່ນຄໍາສັ່ງ aarch64-linux-gnu-objcopy ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
objcopy - ຄັດລອກແລະແປໄຟລ໌ວັດຖຸ
ສະຫຼຸບສັງລວມ
ສຳເນົາ [-F bfdname|--ເປົ້າໝາຍ=bfdname]
[-I bfdname|--input-target=bfdname]
[-O bfdname|--output-target=bfdname]
[-B bfdarch|--binary-architecture=bfdarch]
[-S|--strip-ທັງໝົດ]
[-g|--strip-debug]
[-K ສັນຍາລັກ|--keep-symbol=ສັນຍາລັກ]
[-N ສັນຍາລັກ|--strip-symbol=ສັນຍາລັກ]
[--strip-unneeded-symbol=ສັນຍາລັກ]
[-G ສັນຍາລັກ|--keep-global-symbol=ສັນຍາລັກ]
[--localize-hidden]
[-L ສັນຍາລັກ|--localize-symbol=ສັນຍາລັກ]
[--globalize-symbol=ສັນຍາລັກ]
[-W ສັນຍາລັກ|--weaken-ສັນຍາລັກ=ສັນຍາລັກ]
[-w|--wildcard]
[-x|--ຍົກເລີກທັງໝົດ]
[-X|--discard-ທ້ອງຖິ່ນ]
[-b byte|--byte=byte]
[-i [breadth]|-- interleave[=breadth]]
[--interleave-width=width]
[-j ຮູບແບບພາກ|--only-section=ຮູບແບບພາກ]
[-R ຮູບແບບພາກ|--remove-section=ຮູບແບບພາກ]
[-p|--preserve-dates]
[-D|--enable-deterministic-archives]
[-U|--disable-deterministic-archives]
[-- debugging]
[--gap-fill=h]
[--pad-to=ທີ່ຢູ່]
[--set-start=h]
[--adjust-start=incr]
[--change-addresses=incr]
[--change-section-address ຮູບແບບພາກ{=,+,-}h]
[--change-section-lma ຮູບແບບພາກ{=,+,-}h]
[--change-section-vma ຮູບແບບພາກ{=,+,-}h]
[--ຄໍາເຕືອນການປ່ຽນແປງ] [-- ການເຕືອນໄພບໍ່ມີການປ່ຽນແປງ]
[--set-section-flags ຮູບແບບພາກ=ທົງ]
[--ສ່ວນຕື່ມ ຊື່ພາກ=ຊື່ເອກະສານ]
[-- dump-section ຊື່ພາກ=ຊື່ເອກະສານ]
[--update-section ຊື່ພາກ=ຊື່ເອກະສານ]
[--ປ່ຽນຊື່ພາກສ່ວນ ຊື່ເກົ່າ=ຊື່ໃໝ່[,ທົງ]]
[--long-section-names {enable,disable,keep}]
[--change-leading-char] [--remove-leading-char]
[--reverse-bytes=num]
[--srec-len=ງາວ] [--srec-forceS3]
[--reefine-sym ອາຍຸ=ໃຫມ່]
[--redefine-syms=ຊື່ເອກະສານ]
[-- ອ່ອນເພຍ]
[--keep-symbols=ຊື່ເອກະສານ]
[--strip-symbols=ຊື່ເອກະສານ]
[--strip-unneeded-symbols=ຊື່ເອກະສານ]
[--keep-global-symbols=ຊື່ເອກະສານ]
[--localize-symbols=ຊື່ເອກະສານ]
[--globalize-symbols=ຊື່ເອກະສານ]
[--weaken-symbols=ຊື່ເອກະສານ]
[--add-ສັນຍາລັກ ຊື່=[ສ່ວນ:]ມູນຄ່າ[,ທົງ]
[--alt-machine-code=ດັດຊະນີ]
[--prefix-symbols=string]
[--prefix-sections=string]
[--prefix-alloc-sections=string]
[--add-gnu-debuglink=ເສັ້ນທາງໄປຫາໄຟລ໌]
[--keep-file-ສັນຍາລັກ]
[--only-keep-debug]
[--strip-dwo]
[--extract-dwo]
[--extract-ສັນຍາລັກ]
[--writable-text]
[--readonly-text]
[--ບໍລິສຸດ]
[--ບໍ່ສະອາດ]
[--file-alignment=num]
[--heap=ຂະຫນາດ]
[--image-base=ທີ່ຢູ່]
[--section-alignment=num]
[-- stack=ຂະຫນາດ]
[--ລະບົບຍ່ອຍ=ທີ່:ທີ່ສໍາຄັນ.ເລັກນ້ອຍ]
[--compress-debug-sections]
[--decompress-debug-sections]
[--dwarf-depth=n]
[--dwarf-start=n]
[-v|-- verbose]
[-V|- ການປ່ຽນແປງ]
[- ຊ່ວຍ] [-- ຂໍ້ມູນ]
infile [outfile]
ລາຍລະອຽດ
GNU ສຳເນົາ utility ຄັດລອກເນື້ອໃນຂອງໄຟລ໌ວັດຖຸຫນຶ່ງໄປຫາອື່ນ. ສຳເນົາ ການນໍາໃຊ້
ຫໍສະໝຸດ GNU BFD ເພື່ອອ່ານ ແລະຂຽນໄຟລ໌ວັດຖຸ. ມັນສາມາດຂຽນຈຸດຫມາຍປາຍທາງ
ໄຟລ໌ວັດຖຸໃນຮູບແບບທີ່ແຕກຕ່າງຈາກໄຟລ໌ວັດຖຸຕົ້ນສະບັບ. ພຶດຕິກໍາທີ່ແນ່ນອນ
of ສຳເນົາ ຖືກຄວບຄຸມໂດຍຕົວເລືອກແຖວຄໍາສັ່ງ. ໃຫ້ສັງເກດວ່າ ສຳເນົາ ຄວນຈະສາມາດ
ສຳເນົາໄຟລ໌ທີ່ເຊື່ອມຕໍ່ທັງໝົດລະຫວ່າງສອງຮູບແບບໃດນຶ່ງ. ຢ່າງໃດກໍ່ຕາມ, ການຄັດລອກວັດຖຸທີ່ສາມາດຍ້າຍໄດ້
ໄຟລ໌ລະຫວ່າງສອງຮູບແບບອາດບໍ່ເຮັດວຽກຕາມທີ່ຄາດໄວ້.
ສຳເນົາ ສ້າງໄຟລ໌ຊົ່ວຄາວເພື່ອເຮັດການແປຂອງມັນ ແລະລຶບພວກມັນອອກຫຼັງຈາກນັ້ນ.
ສຳເນົາ ໃຊ້ BFD ເພື່ອເຮັດວຽກການແປພາສາທັງຫມົດຂອງມັນ; ມັນມີການເຂົ້າເຖິງຮູບແບບທັງຫມົດ
ອະທິບາຍໄວ້ໃນ BFD ແລະດັ່ງນັ້ນຈຶ່ງສາມາດຮັບຮູ້ຮູບແບບສ່ວນໃຫຍ່ໂດຍບໍ່ມີການບອກຢ່າງຊັດເຈນ.
ສຳເນົາ ສາມາດຖືກນໍາໃຊ້ເພື່ອສ້າງບັນທຶກ S ໂດຍການນໍາໃຊ້ເປົ້າຫມາຍຜົນຜະລິດຂອງ srec (ເຊັ່ນ: ໃຊ້ -O
srec).
ສຳເນົາ ສາມາດຖືກນໍາໃຊ້ເພື່ອສ້າງໄຟລ໌ຖານສອງໂດຍການນໍາໃຊ້ເປົ້າຫມາຍຜົນຜະລິດຂອງ binary
(ເຊັ່ນ: ໃຊ້ -O binary). ເມື່ອໃດ ສຳເນົາ ສ້າງໄຟລ໌ໄບນາຣີດິບ, ມັນເປັນສິ່ງຈໍາເປັນ
ຜະລິດການຖິ້ມຄວາມຊົງຈໍາຂອງເນື້ອໃນຂອງໄຟລ໌ວັດຖຸວັດສະດຸປ້ອນ. ສັນຍາລັກທັງຫມົດແລະ
ຂໍ້ມູນການຍົກຍ້າຍຈະຖືກຍົກເລີກ. ການຖິ້ມຫນ່ວຍຄວາມຈໍາຈະເລີ່ມຕົ້ນຢູ່ທີ່ທີ່ຢູ່ໂຫຼດ
ຂອງພາກຕ່ໍາສຸດຄັດລອກເຂົ້າໄປໃນໄຟລ໌ຜົນຜະລິດ.
ເມື່ອສ້າງ S-record ຫຼືໄຟລ໌ binary ດິບ, ມັນອາດຈະເປັນປະໂຫຍດໃນການນໍາໃຊ້ -S ເອົາ
ພາກສ່ວນທີ່ມີຂໍ້ມູນການດີບັກ. ໃນບາງກໍລະນີ -R ຈະເປັນປະໂຫຍດທີ່ຈະເອົາອອກ
ພາກສ່ວນທີ່ມີຂໍ້ມູນທີ່ບໍ່ຈໍາເປັນໂດຍໄຟລ໌ຖານສອງ.
ຫມາຍເຫດ---ສຳເນົາ ບໍ່ສາມາດປ່ຽນ endianness ຂອງໄຟລ໌ປ້ອນຂໍ້ມູນຂອງມັນ. ຖ້າຫາກວ່າການປ້ອນຂໍ້ມູນ
ຮູບແບບມີ endianness (ບາງຮູບແບບບໍ່ມີ), ສຳເນົາ ພຽງແຕ່ສາມາດຄັດລອກວັດສະດຸປ້ອນເຂົ້າໄປໃນໄຟລ໌
ຮູບແບບທີ່ມີ endianness ດຽວກັນ ຫຼືບໍ່ມີ endianness (ເຊັ່ນ: srec). (ຢ່າງໃດກໍຕາມ,
ເບິ່ງໄດ້ --reverse-bytes ທາງເລືອກ.)
OPTIONS
infile
outfile
ໄຟລ໌ປ້ອນຂໍ້ມູນ ແລະຜົນຜະລິດຕາມລໍາດັບ. ຖ້າທ່ານບໍ່ລະບຸ outfile, ສຳເນົາ
ສ້າງໄຟລ໌ຊົ່ວຄາວແລະທໍາລາຍການປ່ຽນຊື່ຜົນໄດ້ຮັບດ້ວຍຊື່ຂອງ infile.
-I bfdname
--input-target=bfdname
ພິຈາລະນາຮູບແບບວັດຖຸຂອງໄຟລ໌ແຫຼ່ງທີ່ຈະເປັນ bfdname, ແທນທີ່ຈະພະຍາຍາມ
deduce ມັນ.
-O bfdname
--output-target=bfdname
ຂຽນໄຟລ໌ຜົນຜະລິດໂດຍໃຊ້ຮູບແບບວັດຖຸ bfdname.
-F bfdname
--ເປົ້າໝາຍ=bfdname
ການນໍາໃຊ້ bfdname ເປັນຮູບແບບວັດຖຸສໍາລັບທັງວັດສະດຸປ້ອນແລະໄຟລ໌ຜົນຜະລິດ; ie, ພຽງແຕ່
ໂອນຂໍ້ມູນຈາກແຫຼ່ງໄປຫາປາຍທາງໂດຍບໍ່ມີການແປ.
-B bfdarch
--binary-architecture=bfdarch
ເປັນປະໂຫຍດເມື່ອປ່ຽນໄຟລ໌ວັດສະດຸປ້ອນເຂົ້າໜ້ອຍລົງໃນສະຖາປັດຕະຍະກຳເປັນໄຟລ໌ວັດຖຸ. ໃນນີ້
ກໍລະນີສະຖາປັດຕະຜົນຜະລິດສາມາດໄດ້ຮັບການຕັ້ງເປັນ bfdarch. ຕົວເລືອກນີ້ຈະຖືກລະເລີຍຖ້າ
ໄຟລ໌ປ້ອນຂໍ້ມູນທີ່ມີທີ່ຮູ້ຈັກ bfdarch. ທ່ານສາມາດເຂົ້າເຖິງຂໍ້ມູນຖານສອງນີ້ພາຍໃນໂຄງການ
ໂດຍອ້າງອີງໃສ່ສັນຍາລັກພິເສດທີ່ສ້າງຂຶ້ນໂດຍຂະບວນການປ່ຽນໃຈເຫລື້ອມໃສ. ເຫຼົ່ານີ້
ສັນຍາລັກເອີ້ນວ່າ _binary_objfile_start, _binary_objfile_ສິ້ນສຸດ ແລະ
_binary_objfile_ຂະໜາດ. eg ທ່ານສາມາດຫັນປ່ຽນໄຟລ໌ຮູບພາບເປັນໄຟລ໌ວັດຖຸແລະ
ຈາກນັ້ນເຂົ້າຫາມັນໃນລະຫັດຂອງທ່ານໂດຍໃຊ້ສັນຍາລັກເຫຼົ່ານີ້.
-j ຮູບແບບພາກ
--only-section=ຮູບແບບພາກ
ຄັດລອກພຽງແຕ່ສ່ວນທີ່ລະບຸຈາກໄຟລ໌ປ້ອນຂໍ້ມູນໄປຫາໄຟລ໌ຜົນຜະລິດ. ທາງເລືອກນີ້
ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ. ໃຫ້ສັງເກດວ່າການນໍາໃຊ້ທາງເລືອກນີ້ບໍ່ເຫມາະສົມອາດຈະເຮັດໃຫ້
ໄຟລ໌ຜົນຜະລິດໃຊ້ບໍ່ໄດ້. ຕົວອັກສອນແທນນາມຖືກຍອມຮັບໃນ ຮູບແບບພາກ.
-R ຮູບແບບພາກ
--remove-section=ຮູບແບບພາກ
ເອົາພາກສ່ວນໃດນຶ່ງທີ່ກົງກັນອອກ ຮູບແບບພາກ ຈາກໄຟລ໌ຜົນຜະລິດໄດ້. ທາງເລືອກນີ້ອາດຈະເປັນ
ໃຫ້ຫຼາຍກວ່າຫນຶ່ງຄັ້ງ. ໃຫ້ສັງເກດວ່າການນໍາໃຊ້ທາງເລືອກນີ້ບໍ່ເຫມາະສົມອາດຈະເຮັດໃຫ້ຜົນຜະລິດໄດ້
ໄຟລ໌ໃຊ້ບໍ່ໄດ້. ຕົວອັກສອນແທນນາມຖືກຍອມຮັບໃນ ຮູບແບບພາກ. ການນໍາໃຊ້ທັງສອງ -j
ແລະ -R ທາງເລືອກຮ່ວມກັນເຮັດໃຫ້ພຶດຕິກໍາທີ່ບໍ່ໄດ້ກໍານົດ.
-S
--strip-ທັງໝົດ
ຢ່າຄັດລອກຂໍ້ມູນການຍົກຍ້າຍແລະສັນຍາລັກຈາກໄຟລ໌ແຫຼ່ງ.
-g
--strip-debug
ຫ້າມຄັດລອກສັນຍາລັກຫຼືພາກສ່ວນການດີບັກຈາກໄຟລ໌ແຫຼ່ງ.
--strip-ບໍ່ຈໍາເປັນ
ຖອດສັນຍາລັກທັງໝົດທີ່ບໍ່ຈຳເປັນສຳລັບການຍົກຍ້າຍ.
-K ສັນຍາລັກ
--keep-symbol=ສັນຍາລັກ
ເມື່ອລອກເອົາສັນຍາລັກ, ຮັກສາສັນຍາລັກ ສັນຍາລັກ ເຖິງແມ່ນວ່າມັນຈະຖືກຖອດອອກຕາມປົກກະຕິ.
ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
-N ສັນຍາລັກ
--strip-symbol=ສັນຍາລັກ
ຫ້າມສຳເນົາສັນຍາລັກ ສັນຍາລັກ ຈາກໄຟລ໌ແຫຼ່ງ. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າ
ກ່ວາຫນຶ່ງຄັ້ງ
--strip-unneeded-symbol=ສັນຍາລັກ
ຫ້າມສຳເນົາສັນຍາລັກ ສັນຍາລັກ ຈາກໄຟລ໌ແຫຼ່ງເວັ້ນເສຍແຕ່ວ່າມັນຕ້ອງການໂດຍ a
ການຍົກຍ້າຍ. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
-G ສັນຍາລັກ
--keep-global-symbol=ສັນຍາລັກ
ຮັກສາສັນຍາລັກເທົ່ານັ້ນ ສັນຍາລັກ ທົ່ວໂລກ. ເຮັດໃຫ້ສັນຍາລັກອື່ນໆທັງຫມົດໃນທ້ອງຖິ່ນກັບໄຟລ໌, ດັ່ງນັ້ນ
ພວກເຂົາເຈົ້າບໍ່ໄດ້ສັງເກດເຫັນພາຍນອກ. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--localize-hidden
ໃນວັດຖຸ ELF, ໃຫ້ໝາຍສັນຍາລັກທັງໝົດທີ່ເຊື່ອງໄວ້ ຫຼືການເບິ່ງເຫັນພາຍໃນເປັນທ້ອງຖິ່ນ.
ທາງເລືອກນີ້ໃຊ້ຢູ່ເທິງຂອງຕົວເລືອກການທ້ອງຖິ່ນສັນຍາລັກສະເພາະເຊັ່ນ: -L.
-L ສັນຍາລັກ
--localize-symbol=ສັນຍາລັກ
ເຮັດສັນຍາລັກ ສັນຍາລັກ local ກັບໄຟລ໌, ດັ່ງນັ້ນມັນບໍ່ໄດ້ສັງເກດເຫັນພາຍນອກ. ນີ້
ທາງເລືອກອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
-W ສັນຍາລັກ
--weaken-ສັນຍາລັກ=ສັນຍາລັກ
ເຮັດສັນຍາລັກ ສັນຍາລັກ ອ່ອນເພຍ. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--globalize-symbol=ສັນຍາລັກ
ໃຫ້ສັນຍາລັກ ສັນຍາລັກ ຂອບເຂດທົ່ວໂລກເພື່ອໃຫ້ມັນເຫັນໄດ້ຢູ່ນອກໄຟລ໌ໃນ
ເຊິ່ງມັນຖືກກໍານົດ. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
-w
--wildcard
ອະນຸຍາດໃຫ້ສະແດງອອກເປັນປົກກະຕິໃນ ສັນຍາລັກs ໃຊ້ໃນຕົວເລືອກແຖວຄໍາສັ່ງອື່ນໆ. ໄດ້
ເຄື່ອງໝາຍຄໍາຖາມ (?), ດາວ (*), backslash (\) ແລະວົງເລັບສີ່ຫຼ່ຽມ ([]) ຜູ້ປະກອບການສາມາດ
ຖືກນໍາໃຊ້ທຸກບ່ອນໃນຊື່ສັນຍາລັກ. ຖ້າຕົວລະຄອນທໍາອິດຂອງຊື່ສັນຍາລັກແມ່ນ
ຈຸດ exclamation (!) ຫຼັງຈາກນັ້ນຄວາມຮູ້ສຶກຂອງສະຫຼັບແມ່ນປີ້ນກັບກັນສໍາລັບສັນຍາລັກນັ້ນ. ສໍາລັບ
ຍົກຕົວຢ່າງ:
-w -W !foo -W fo*
ຈະເຮັດໃຫ້ objcopy ອ່ອນລົງທຸກສັນຍາລັກທີ່ເລີ່ມຕົ້ນດ້ວຍ "fo" ຍົກເວັ້ນສັນຍາລັກ
"ຟຸ".
-x
--ຍົກເລີກທັງໝົດ
ຫ້າມຄັດລອກສັນຍາລັກທີ່ບໍ່ແມ່ນທົ່ວໂລກຈາກໄຟລ໌ແຫຼ່ງ.
-X
--discard-ທ້ອງຖິ່ນ
ຫ້າມສຳເນົາສັນຍາລັກທ້ອງຖິ່ນທີ່ສ້າງຂຶ້ນໂດຍຄອມພີວເຕີ. (ໂດຍປົກກະຕິ, ເຫຼົ່ານີ້ເລີ່ມຕົ້ນດ້ວຍ L or ..)
-b byte
--byte=byte
ຖ້າ interleaving ໄດ້ຖືກເປີດໃຊ້ຜ່ານ -- interleave ທາງເລືອກຫຼັງຈາກນັ້ນເລີ່ມຕົ້ນລະດັບຂອງ
bytes ເພື່ອຮັກສາຢູ່ທີ່ byteth byte. byte ສາມາດຢູ່ໃນຂອບເຂດຈາກ 0 ຫາ breadth-1, ບ່ອນທີ່
breadth ແມ່ນມູນຄ່າທີ່ໃຫ້ໂດຍ -- interleave ທາງເລືອກ.
-i [breadth]
--interleave[=breadth]
ພຽງແຕ່ຄັດລອກຂອບເຂດອອກຈາກທຸກໆ breadth ໄບຕ໌. (ຂໍ້ມູນສ່ວນຫົວບໍ່ໄດ້ຮັບຜົນກະທົບ). ເລືອກ
ໄບຕ໌ໃດໃນຂອບເຂດເລີ່ມຕົ້ນການສຳເນົາດ້ວຍ --byte ທາງເລືອກ. ເລືອກ width ຂອງ
ຂອບເຂດທີ່ມີ --interleave-width ທາງເລືອກ.
ທາງເລືອກນີ້ແມ່ນເປັນປະໂຫຍດສໍາລັບການສ້າງໄຟລ໌ກັບໂຄງການ ROM. ມັນຖືກນໍາໃຊ້ໂດຍປົກກະຕິກັບ
"srec" ເປົ້າຫມາຍຜົນຜະລິດ. ໃຫ້ສັງເກດວ່າ ສຳເນົາ ຈະຈົ່ມຖ້າຫາກວ່າທ່ານບໍ່ໄດ້ລະບຸ
--byte ທາງເລືອກເຊັ່ນດຽວກັນ.
ຄວາມກວ້າງຂອງ interleave ເລີ່ມຕົ້ນແມ່ນ 4, ດັ່ງນັ້ນ --byte ຕັ້ງເປັນ 0, ສຳເນົາ ຈະຄັດລອກ
byte ທໍາອິດອອກຈາກທຸກໆສີ່ bytes ຈາກ input ຫາຜົນໄດ້ຮັບ.
--interleave-width=width
ເມື່ອໃຊ້ກັບ -- interleave ທາງເລືອກ, ສໍາເນົາ width bytes ໃນເວລາ. ການເລີ່ມຕົ້ນຂອງ
ຂອບເຂດຂອງ bytes ທີ່ຈະຄັດລອກແມ່ນຖືກກໍານົດໂດຍ --byte ທາງເລືອກ, ແລະຂອບເຂດຂອງຂອບເຂດ
ຖືກກໍານົດດ້ວຍ -- interleave ທາງເລືອກ.
ຄ່າເລີ່ມຕົ້ນສໍາລັບທາງເລືອກນີ້ແມ່ນ 1. ມູນຄ່າຂອງ width ບວກກັບ byte ຄ່າທີ່ກໍານົດໂດຍ
ໄດ້ --byte ທາງເລືອກຈະຕ້ອງບໍ່ເກີນຄວາມກວ້າງຂອງ interleave ທີ່ກໍານົດໄວ້ໂດຍ -- interleave
ທາງເລືອກ.
ທາງເລືອກນີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອສ້າງຮູບພາບສໍາລັບສອງ flashes 16-bit interleaved ໃນ a
ລົດເມ 32-bit ຜ່ານ -b 0 -i 4 --interleave-width=2 ແລະ -b 2 -i 4
--interleave-width=2 ເຖິງສອງ ສຳເນົາ ຄໍາສັ່ງ. ຖ້າການປ້ອນຂໍ້ມູນແມ່ນ '12345678' ຫຼັງຈາກນັ້ນ
ຜົນໄດ້ຮັບຈະເປັນ '1256' ແລະ '3478' ຕາມລໍາດັບ.
-p
--preserve-dates
ກໍານົດວັນທີການເຂົ້າເຖິງແລະການດັດແກ້ຂອງໄຟລ໌ຜົນຜະລິດເປັນອັນດຽວກັນກັບຂອງ
ໄຟລ໌ປ້ອນຂໍ້ມູນ.
-D
--enable-deterministic-archives
ດໍາເນີນການໃນ ການ ກຳ ນົດ ໂໝດ. ເມື່ອຄັດລອກສະມາຊິກຮວບຮວມແລະຂຽນຮວບຮວມ
index, ໃຊ້ສູນສໍາລັບ UIDs, GIDs, timestamps, ແລະນໍາໃຊ້ຮູບແບບໄຟລ໌ທີ່ສອດຄ່ອງສໍາລັບທັງຫມົດ.
ໄຟລ໌.
If binutils ໄດ້ configured ກັບ --enable-deterministic-archives, ຈາກນັ້ນໂໝດນີ້ເປີດຢູ່
ໂດຍຄ່າເລີ່ມຕົ້ນ. ມັນສາມາດໄດ້ຮັບການພິການດ້ວຍ -U ທາງເລືອກ, ຂ້າງລຸ່ມນີ້.
-U
--disable-deterministic-archives
Do ບໍ່ ປະຕິບັດງານໃນ ການ ກຳ ນົດ ໂໝດ. ນີ້ແມ່ນ inverse ຂອງ -D ທາງເລືອກ, ຂ້າງເທິງ:
ເມື່ອຄັດລອກສະມາຊິກໃນແຟ້ມຈັດເກັບແລະຂຽນດັດສະນີເກັບມ້ຽນ, ໃຊ້ UID ຕົວຈິງຂອງພວກເຂົາ, GID,
ເວລາ, ແລະຄ່າຮູບແບບໄຟລ໌.
ນີ້ແມ່ນຄ່າເລີ່ມຕົ້ນເວັ້ນເສຍແຕ່ binutils ໄດ້ configured ກັບ
--enable-deterministic-archives.
-- debugging
ປ່ຽນຂໍ້ມູນການດີບັກ, ຖ້າເປັນໄປໄດ້. ນີ້ບໍ່ແມ່ນຄ່າເລີ່ມຕົ້ນເພາະວ່າພຽງແຕ່
ສະຫນັບສະຫນູນຮູບແບບ debugging ສະເພາະໃດຫນຶ່ງ, ແລະຂະບວນການປ່ຽນແປງສາມາດໃຊ້ເວລາ
ການຊົມໃຊ້.
--gap-ຕື່ມ h
ຕື່ມຂໍ້ມູນໃສ່ຊ່ອງຫວ່າງລະຫວ່າງພາກສ່ວນທີ່ມີ h. ການດໍາເນີນງານນີ້ໃຊ້ກັບ load ທີ່ຢູ່ (LMA)
ຂອງພາກສ່ວນ. ມັນແມ່ນເຮັດໂດຍການເພີ່ມຂະຫນາດຂອງສ່ວນທີ່ມີຕ່ໍາ
ທີ່ຢູ່, ແລະຕື່ມຂໍ້ມູນໃສ່ໃນພື້ນທີ່ພິເສດທີ່ສ້າງຂຶ້ນດ້ວຍ h.
--pad-to ທີ່ຢູ່
pad ໄຟລ໌ຜົນຜະລິດໄດ້ເຖິງທີ່ຢູ່ການໂຫຼດ ທີ່ຢູ່. ນີ້ແມ່ນເຮັດໄດ້ໂດຍການເພີ່ມ
ຂະຫນາດຂອງພາກສຸດທ້າຍ. ພື້ນທີ່ພິເສດແມ່ນເຕັມໄປດ້ວຍມູນຄ່າທີ່ລະບຸໄວ້ໂດຍ
--gap-ຕື່ມ (ສູນຄ່າເລີ່ມຕົ້ນ).
--set-start h
ກໍານົດທີ່ຢູ່ເລີ່ມຕົ້ນຂອງໄຟລ໌ໃຫມ່ເປັນ h. ບໍ່ແມ່ນທຸກຮູບແບບໄຟລ໌ວັດຖຸທີ່ຮອງຮັບ
ກໍານົດທີ່ຢູ່ເລີ່ມຕົ້ນ.
--ການເລີ່ມຕົ້ນການປ່ຽນແປງ incr
--ປັບ-ເລີ່ມ incr
ປ່ຽນທີ່ຢູ່ເລີ່ມຕົ້ນໂດຍການເພີ່ມ incr. ບໍ່ແມ່ນທຸກຮູບແບບໄຟລ໌ວັດຖຸຮອງຮັບການຕັ້ງຄ່າ
ທີ່ຢູ່ເລີ່ມຕົ້ນ.
--ການປ່ຽນແປງທີ່ຢູ່ incr
--ປັບ-vma incr
ປ່ຽນທີ່ຢູ່ VMA ແລະ LMA ຂອງທຸກພາກສ່ວນ, ເຊັ່ນດຽວກັນກັບທີ່ຢູ່ເລີ່ມຕົ້ນ, ໂດຍ
ເພີ່ມ incr. ບາງຮູບແບບໄຟລ໌ວັດຖຸບໍ່ອະນຸຍາດໃຫ້ປ່ຽນທີ່ຢູ່ຂອງພາກສ່ວນ
arbitrarily. ໃຫ້ສັງເກດວ່ານີ້ບໍ່ໄດ້ຍົກຍ້າຍພາກສ່ວນ; ຖ້າໂຄງການຄາດຫວັງ
ພາກສ່ວນທີ່ຈະໄດ້ຮັບການໂຫຼດຢູ່ທີ່ສະເພາະໃດຫນຶ່ງ, ແລະທາງເລືອກນີ້ແມ່ນໄດ້ຖືກນໍາໃຊ້ເພື່ອປ່ຽນ
ພາກສ່ວນຕ່າງໆເຊັ່ນວ່າພວກມັນຖືກໂຫລດຢູ່ບ່ອນອື່ນ, ໂຄງການອາດຈະລົ້ມເຫລວ.
--change-section-address ຮູບແບບພາກ{=,+,-}h
--adjust-section-vma ຮູບແບບພາກ{=,+,-}h
ຕັ້ງ ຫຼືປ່ຽນທັງທີ່ຢູ່ VMA ແລະທີ່ຢູ່ LMA ຂອງພາກສ່ວນໃດນຶ່ງທີ່ກົງກັນ
ຮູບແບບພາກທີ່ຢູ່ ຖ້າຫາກວ່າ = ຖືກນໍາໃຊ້, ທີ່ຢູ່ພາກແມ່ນກໍານົດເປັນ h. ຖ້າບໍ່ດັ່ງນັ້ນ, h is
ເພີ່ມ ຫຼື ຫັກອອກຈາກທີ່ຢູ່ພາກ. ເບິ່ງຄໍາເຫັນພາຍໃຕ້
--ການປ່ຽນແປງທີ່ຢູ່, ຂ້າງເທິງ. ຖ້າ ຮູບແບບພາກ ບໍ່ກົງກັບພາກສ່ວນໃດນຶ່ງໃນການປ້ອນຂໍ້ມູນ
ໄຟລ໌, ການເຕືອນໄພຈະຖືກອອກ, ເວັ້ນເສຍແຕ່ -- ການເຕືອນໄພບໍ່ມີການປ່ຽນແປງ ຖືກນໍາໃຊ້.
--change-section-lma ຮູບແບບພາກ{=,+,-}h
ຕັ້ງ ຫຼືປ່ຽນທີ່ຢູ່ LMA ຂອງພາກສ່ວນໃດນຶ່ງທີ່ກົງກັນ ຮູບແບບພາກ. LMA
ທີ່ຢູ່ແມ່ນທີ່ຢູ່ບ່ອນທີ່ພາກສ່ວນຈະຖືກໂຫລດເຂົ້າໄປໃນຫນ່ວຍຄວາມຈໍາໃນເວລາໂຫລດໂປຼແກຼມ
ເວລາ. ປົກກະຕິແລ້ວນີ້ແມ່ນຄືກັນກັບທີ່ຢູ່ VMA, ເຊິ່ງເປັນທີ່ຢູ່ຂອງ
ພາກສ່ວນໃນເວລາທີ່ດໍາເນີນໂຄງການ, ແຕ່ໃນບາງລະບົບ, ໂດຍສະເພາະບ່ອນທີ່ໂຄງການແມ່ນ
ຈັດຂຶ້ນໃນ ROM, ທັງສອງສາມາດແຕກຕ່າງກັນ. ຖ້າ = ຖືກນໍາໃຊ້, ທີ່ຢູ່ພາກແມ່ນກໍານົດເປັນ
h. ຖ້າບໍ່ດັ່ງນັ້ນ, h ຖືກເພີ່ມໃສ່ ຫຼືຫັກອອກຈາກທີ່ຢູ່ຂອງພາກ. ເບິ່ງ
ຄໍາເຫັນພາຍໃຕ້ --ການປ່ຽນແປງທີ່ຢູ່, ຂ້າງເທິງ. ຖ້າ ຮູບແບບພາກ ບໍ່ກົງກັນໃດໆ
ພາກສ່ວນໃນໄຟລ໌ປ້ອນຂໍ້ມູນ, ການເຕືອນໄພຈະຖືກອອກ, ເວັ້ນເສຍແຕ່ -- ການເຕືອນໄພບໍ່ມີການປ່ຽນແປງ is
ໃຊ້ແລ້ວ.
--change-section-vma ຮູບແບບພາກ{=,+,-}h
ຕັ້ງ ຫຼືປ່ຽນທີ່ຢູ່ VMA ຂອງພາກສ່ວນໃດນຶ່ງທີ່ກົງກັນ ຮູບແບບພາກ. ທີ່ຢູ່ VMA
ແມ່ນທີ່ຢູ່ບ່ອນທີ່ພາກສ່ວນຈະຕັ້ງຢູ່ເມື່ອໂຄງການໄດ້ເລີ່ມຕົ້ນ
ການປະຕິບັດ. ປົກກະຕິແລ້ວນີ້ແມ່ນຄືກັນກັບທີ່ຢູ່ LMA, ເຊິ່ງເປັນທີ່ຢູ່ທີ່
ພາກສ່ວນຈະຖືກໂຫລດເຂົ້າໄປໃນຫນ່ວຍຄວາມຈໍາ, ແຕ່ໃນບາງລະບົບ, ໂດຍສະເພາະແມ່ນບ່ອນທີ່ a
ໂຄງການແມ່ນຈັດຂຶ້ນໃນ ROM, ທັງສອງສາມາດແຕກຕ່າງກັນ. ຖ້າ = ຖືກນໍາໃຊ້, ທີ່ຢູ່ພາກ
ຖືກກໍານົດໃຫ້ h. ຖ້າບໍ່ດັ່ງນັ້ນ, h ຖືກເພີ່ມໃສ່ ຫຼືຫັກອອກຈາກທີ່ຢູ່ຂອງພາກ.
ເບິ່ງຄໍາເຫັນພາຍໃຕ້ --ການປ່ຽນແປງທີ່ຢູ່, ຂ້າງເທິງ. ຖ້າ ຮູບແບບພາກ ບໍ່ກົງກັນ
ພາກສ່ວນໃດນຶ່ງໃນໄຟລ໌ປ້ອນຂໍ້ມູນ, ການເຕືອນຈະຖືກອອກ, ເວັ້ນເສຍແຕ່ -- ການເຕືອນໄພບໍ່ມີການປ່ຽນແປງ
ຖືກນໍາໃຊ້.
--ຄໍາເຕືອນການປ່ຽນແປງ
-- ປັບ-ເຕືອນ
If --change-section-address or --change-section-lma or --change-section-vma ຖືກນໍາໃຊ້,
ແລະຮູບແບບພາກສ່ວນບໍ່ກົງກັບພາກສ່ວນໃດນຶ່ງ, ອອກຄໍາເຕືອນ. ນີ້ແມ່ນ
Default
-- ການເຕືອນໄພບໍ່ມີການປ່ຽນແປງ
--no-adjust-ການເຕືອນ
ຢ່າອອກຄໍາເຕືອນຖ້າຫາກວ່າ --change-section-address or --adjust-section-lma or
--adjust-section-vma ຖືກນໍາໃຊ້, ເຖິງແມ່ນວ່າຮູບແບບພາກບໍ່ກົງກັບພາກສ່ວນໃດ.
--set-section-flags ຮູບແບບພາກ=ທົງ
ກໍານົດທຸງສໍາລັບພາກສ່ວນໃດທີ່ກົງກັນ ຮູບແບບພາກ. ໄດ້ ທົງ argument ເປັນເຄື່ອງໝາຍຈຸດ
ແຍກສະຕຣິງຂອງຊື່ທຸງ. ຊື່ທີ່ຮັບຮູ້ແມ່ນ ຈັດສັນ, ເນື້ອຫາ, load,
noload, ອ່ານຢ່າງດຽວ, ລະຫັດ, ຂໍ້ມູນ, ໂລມ, share, ແລະ debug. ທ່ານສາມາດກໍານົດ ເນື້ອຫາ ທຸງ
ສໍາລັບພາກສ່ວນທີ່ບໍ່ມີເນື້ອໃນ, ແຕ່ມັນບໍ່ມີຄວາມຫມາຍທີ່ຈະລ້າງອອກ
ເນື້ອຫາ ທຸງຂອງພາກສ່ວນທີ່ມີເນື້ອໃນ -- ພຽງແຕ່ເອົາພາກສ່ວນອອກແທນ.
ບໍ່ແມ່ນທຸງທັງໝົດມີຄວາມໝາຍສຳລັບທຸກຮູບແບບໄຟລ໌ວັດຖຸ.
--ສ່ວນຕື່ມ ຊື່ພາກ=ຊື່ເອກະສານ
ເພີ່ມພາກໃຫມ່ທີ່ມີຊື່ ຊື່ພາກ ໃນຂະນະທີ່ການຄັດລອກໄຟລ໌. ເນື້ອໃນຂອງໃຫມ່
ພາກສ່ວນຖືກເອົາມາຈາກໄຟລ໌ ຊື່ເອກະສານ. ຂະຫນາດຂອງພາກສ່ວນຈະເປັນຂະຫນາດຂອງ
ໄຟລ໌. ທາງເລືອກນີ້ພຽງແຕ່ເຮັດວຽກກ່ຽວກັບຮູບແບບໄຟລ໌ທີ່ສາມາດສະຫນັບສະຫນູນພາກສ່ວນທີ່ມີ
ຊື່ທີ່ມັກ. ຫມາຍເຫດ - ມັນອາດຈະມີຄວາມຈໍາເປັນທີ່ຈະໃຊ້ --set-section-flags ທາງເລືອກທີ່ຈະ
ກໍານົດຄຸນລັກສະນະຂອງພາກສ່ວນທີ່ສ້າງຂຶ້ນໃຫມ່.
-- dump-section ຊື່ພາກ=ຊື່ເອກະສານ
ວາງເນື້ອໃນຂອງພາກສ່ວນທີ່ມີຊື່ ຊື່ພາກ ເຂົ້າໄປໃນໄຟລ໌ ຊື່ເອກະສານ, ຂຽນທັບ
ເນື້ອຫາໃດໆທີ່ອາດຈະຢູ່ທີ່ນັ້ນກ່ອນຫນ້ານີ້. ທາງເລືອກນີ້ແມ່ນກົງກັນຂ້າມຂອງ
--ສ່ວນຕື່ມ. ທາງເລືອກນີ້ແມ່ນຄ້າຍຄືກັນກັບ -- ພາກສ່ວນເທົ່ານັ້ນ ທາງເລືອກຍົກເວັ້ນມັນ
ບໍ່ໄດ້ສ້າງໄຟລ໌ທີ່ມີຮູບແບບ, ມັນພຽງແຕ່ dumps ເນື້ອໃນເປັນຂໍ້ມູນຖານສອງດິບ,
ໂດຍບໍ່ມີການນໍາໃຊ້ການຍົກຍ້າຍໃດໆ. ທາງເລືອກສາມາດຖືກກໍານົດຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--update-section ຊື່ພາກ=ຊື່ເອກະສານ
ແທນທີ່ເນື້ອໃນທີ່ມີຢູ່ແລ້ວຂອງພາກສ່ວນທີ່ມີຊື່ ຊື່ພາກ ກັບເນື້ອໃນຂອງໄຟລ໌
ຊື່ເອກະສານ. ຂະຫນາດຂອງພາກສ່ວນຈະໄດ້ຮັບການປັບຂະຫນາດຂອງໄຟລ໌ໄດ້. ໄດ້
ທຸງພາກສໍາລັບ ຊື່ພາກ ຈະບໍ່ປ່ຽນແປງ. ສໍາລັບຮູບແບບ ELF ໄຟລ໌ພາກສ່ວນທີ່ຈະ
ການສ້າງແຜນທີ່ segment ຍັງຈະບໍ່ປ່ຽນແປງ, ບາງສິ່ງບາງຢ່າງທີ່ເປັນໄປບໍ່ໄດ້ທີ່ຈະນໍາໃຊ້
--remove-section ປະຕິບັດຕາມໂດຍ --ສ່ວນຕື່ມ. ທາງເລືອກສາມາດຖືກກໍານົດຫຼາຍກ່ວາ
ຄັ້ງຫນຶ່ງ.
ຫມາຍເຫດ - ມັນເປັນໄປໄດ້ທີ່ຈະນໍາໃຊ້ --ປ່ຽນຊື່ພາກສ່ວນ ແລະ --update-section ທັງສອງປັບປຸງແລະ
ປ່ຽນຊື່ພາກສ່ວນໜຶ່ງຈາກແຖວຄຳສັ່ງ. ໃນກໍລະນີນີ້, ໃຫ້ຜ່ານຊື່ພາກຕົ້ນສະບັບ
to --update-section, ແລະຊື່ພາກສ່ວນຕົ້ນສະບັບແລະໃຫມ່ --ປ່ຽນຊື່ພາກສ່ວນ.
--add-ສັນຍາລັກ ຊື່=[ສ່ວນ:]ມູນຄ່າ[,ທົງ]
ເພີ່ມສັນຍາລັກໃຫມ່ທີ່ມີຊື່ ຊື່ ໃນຂະນະທີ່ການຄັດລອກໄຟລ໌. ຕົວເລືອກນີ້ອາດຈະຖືກລະບຸໄວ້
ຫຼາຍຄັ້ງ. ຖ້າ ສ່ວນ ໄດ້ຖືກມອບໃຫ້, ສັນຍາລັກຈະຖືກເຊື່ອມໂຍງກັບແລະ
ກ່ຽວຂ້ອງກັບພາກສ່ວນນັ້ນ, ຖ້າບໍ່ດັ່ງນັ້ນມັນຈະເປັນສັນຍາລັກ ABS. ກໍານົດການບໍ່ໄດ້ກໍານົດ
ພາກສ່ວນຈະສົ່ງຜົນໃຫ້ເກີດຄວາມຜິດພາດຮ້າຍແຮງ. ບໍ່ມີການກວດສອບມູນຄ່າ, ມັນຈະເປັນ
ເອົາຕາມທີ່ລະບຸໄວ້. ທຸງສັນຍາລັກສາມາດຖືກກໍານົດແລະບໍ່ແມ່ນທຸງທັງຫມົດ
ມີຄວາມຫມາຍສໍາລັບທຸກຮູບແບບໄຟລ໌ວັດຖຸ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ສັນຍາລັກຈະເປັນທົ່ວໂລກ. ໄດ້
ທຸງພິເສດ 'ກ່ອນ =ອື່ນ' ຈະໃສ່ສັນຍາລັກໃຫມ່ຢູ່ທາງຫນ້າຂອງທີ່ກໍານົດໄວ້
ອື່ນຖ້າບໍ່ດັ່ງນັ້ນສັນຍາລັກຈະຖືກເພີ່ມໃສ່ໃນຕອນທ້າຍຂອງຕາຕະລາງສັນຍາລັກໃນ
ສັ່ງໃຫ້ປາກົດ.
--ປ່ຽນຊື່ພາກສ່ວນ ຊື່ເກົ່າ=ຊື່ໃໝ່[,ທົງ]
ປ່ຽນຊື່ພາກສ່ວນຈາກ ຊື່ເກົ່າ to ຊື່ໃໝ່, ທາງເລືອກໃນການປ່ຽນທຸງຂອງພາກສ່ວນເປັນ
ທົງ ໃນຂະບວນການ. ນີ້ມີປະໂຫຍດຫຼາຍກວ່າ usng script linker ເພື່ອປະຕິບັດ
ປ່ຽນຊື່ໃນສິ່ງທີ່ຜົນໄດ້ຮັບຍັງຄົງເປັນໄຟລ໌ວັດຖຸແລະບໍ່ກາຍເປັນການເຊື່ອມຕໍ່
ປະຕິບັດໄດ້.
ທາງເລືອກນີ້ແມ່ນເປັນປະໂຫຍດໂດຍສະເພາະໃນເວລາທີ່ຮູບແບບການປ້ອນຂໍ້ມູນເປັນຖານສອງ, ນັບຕັ້ງແຕ່ນີ້ຈະ
ສະເຫມີສ້າງພາກສ່ວນທີ່ເອີ້ນວ່າ .data. ຖ້າຕົວຢ່າງ, ທ່ານຕ້ອງການແທນທີ່ຈະສ້າງ
ພາກສ່ວນທີ່ເອີ້ນວ່າ .rodata ປະກອບດ້ວຍຂໍ້ມູນຖານສອງທີ່ທ່ານສາມາດນໍາໃຊ້ເສັ້ນຄໍາສັ່ງຕໍ່ໄປນີ້
ເພື່ອບັນລຸມັນ:
objcopy -I binary -O - ຂ \
--rename-section .data=.rodata,alloc,load,readonly,data,contents \
--long-section-names {enable,disable,keep}
ຄວບຄຸມການຈັດການຊື່ພາກສ່ວນຍາວໃນເວລາປະມວນຜົນ "COFF" ແລະ "PE-COFF"
ຮູບແບບວັດຖຸ. ພຶດຕິກໍາໃນຕອນຕົ້ນ, ຮັກສາ, ແມ່ນເພື່ອຮັກສາຊື່ພາກຍາວຖ້າມີ
ມີຢູ່ໃນໄຟລ໌ປ້ອນຂໍ້ມູນ. ໄດ້ ເຮັດໃຫ້ສາມາດ ແລະ ປິດການໃຊ້ວຽກ ທາງເລືອກໃນການບັງຄັບໃຫ້ເປີດຫຼື
ປິດການໃຊ້ງານຂອງຊື່ພາກສ່ວນຍາວໃນວັດຖຸຜົນຜະລິດ; ເມື່ອໃດ ປິດການໃຊ້ວຽກ ມີຜົນກະທົບ,
ຊື່ພາກສ່ວນໃດນຶ່ງທີ່ຍາວຢູ່ໃນວັດຖຸປ້ອນຂໍ້ມູນຈະຖືກຕັດອອກ. ໄດ້ ເຮັດໃຫ້ສາມາດ ທາງເລືອກຈະ
ພຽງແຕ່ປ່ອຍຊື່ພາກສ່ວນຍາວຖ້າມີຢູ່ໃນວັດສະດຸປ້ອນ; ນີ້ສ່ວນຫຼາຍແມ່ນຄືກັນ
as ຮັກສາ, ແຕ່ມັນຖືກປະໄວ້ໂດຍບໍ່ໄດ້ກໍານົດບໍ່ວ່າຈະເປັນ ເຮັດໃຫ້ສາມາດ ທາງເລືອກອາດຈະບັງຄັບການສ້າງ
ຂອງຕາຕະລາງສະຕຣິງຫວ່າງເປົ່າໃນໄຟລ໌ຜົນຜະລິດ.
--change-leading-char
ບາງຮູບແບບໄຟລ໌ວັດຖຸໃຊ້ຕົວອັກສອນພິເສດໃນຕອນເລີ່ມຕົ້ນຂອງສັນຍາລັກ. ສ່ວນໃຫຍ່
ລັກສະນະທົ່ວໄປແມ່ນ underscore, ເຊິ່ງ compilers ມັກຈະເພີ່ມກ່ອນທຸກສັນຍາລັກ.
ທາງເລືອກນີ້ບອກ ສຳເນົາ ການປ່ຽນແປງລັກສະນະຊັ້ນນໍາຂອງທຸກໆສັນຍາລັກໃນເວລາທີ່ມັນ
ແປງລະຫວ່າງຮູບແບບໄຟລ໌ວັດຖຸ. ຖ້າຮູບແບບໄຟລ໌ວັດຖຸໃຊ້ຕົວນໍາດຽວກັນ
ລັກສະນະ, ທາງເລືອກນີ້ບໍ່ມີຜົນ. ຖ້າບໍ່ດັ່ງນັ້ນ, ມັນຈະເພີ່ມຕົວອັກສອນ, ຫຼືເອົາ a
ລັກສະນະ, ຫຼືປ່ຽນລັກສະນະ, ຕາມຄວາມເຫມາະສົມ.
--remove-leading-char
ຖ້າລັກສະນະທໍາອິດຂອງສັນຍາລັກທົ່ວໂລກແມ່ນສັນຍາລັກພິເສດຂອງຕົວນໍາທີ່ໃຊ້
ໂດຍຮູບແບບໄຟລ໌ວັດຖຸ, ເອົາຕົວອັກສອນອອກ. ສັນຍາລັກທົ່ວໄປທີ່ສຸດນໍາພາ
ຕົວອັກສອນແມ່ນຂີດກ້ອງ. ໂຕເລືອກນີ້ຈະເອົາຈຸດຂີດກ້ອງອອກຈາກທົ່ວໂລກທັງໝົດ
ສັນຍາລັກ. ນີ້ສາມາດເປັນປະໂຫຍດຖ້າຫາກວ່າທ່ານຕ້ອງການທີ່ຈະເຊື່ອມຕໍ່ກັນວັດຖຸຂອງໄຟລ໌ທີ່ແຕກຕ່າງກັນ
ຮູບແບບທີ່ມີສົນທິສັນຍາທີ່ແຕກຕ່າງກັນສໍາລັບຊື່ສັນຍາລັກ. ນີ້ແມ່ນແຕກຕ່າງຈາກ
--change-leading-char ເນື່ອງຈາກວ່າມັນສະເຫມີປ່ຽນຊື່ສັນຍາລັກໃນເວລາທີ່ເຫມາະສົມ,
ໂດຍບໍ່ສົນເລື່ອງຂອງຮູບແບບໄຟລ໌ວັດຖຸຂອງໄຟລ໌ຜົນຜະລິດ.
--reverse-bytes=num
ປີ້ນກັບ bytes ໃນພາກສ່ວນທີ່ມີເນື້ອໃນຜົນຜະລິດ. ຄວາມຍາວຂອງພາກສ່ວນຈະຕ້ອງເທົ່າກັນ
ແບ່ງຕາມຄ່າທີ່ໃຫ້ໄວ້ເພື່ອໃຫ້ swap ສາມາດເກີດຂຶ້ນໄດ້. ປີ້ນຄືນ
ໃຊ້ເວລາສະຖານທີ່ກ່ອນທີ່ຈະ interleaving ໄດ້ຖືກປະຕິບັດ.
ຕົວເລືອກນີ້ຖືກນໍາໃຊ້ໂດຍທົ່ວໄປໃນການສ້າງຮູບພາບ ROM ສໍາລັບລະບົບເປົ້າຫມາຍທີ່ມີບັນຫາ.
ຕົວຢ່າງ, ໃນບາງກະດານເປົ້າຫມາຍ, ຄໍາ 32-bit ທີ່ດຶງມາຈາກ ROM 8-bit ແມ່ນ re-
ປະກອບຢູ່ໃນລໍາດັບນ້ອຍ-endian byte ໂດຍບໍ່ຄໍານຶງເຖິງຄໍາສັ່ງ byte CPU. ຂຶ້ນກັບ
ຮູບແບບການຂຽນໂປລແກລມ, endianness ຂອງ ROM ອາດຈະຕ້ອງໄດ້ຮັບການແກ້ໄຂ.
ພິຈາລະນາໄຟລ໌ງ່າຍດາຍທີ່ມີພາກສ່ວນທີ່ມີແປດໄບຕ໌ດັ່ງຕໍ່ໄປນີ້: 12345678.
ການນໍາໃຊ້ --reverse-bytes=2 ສໍາລັບຕົວຢ່າງຂ້າງເທິງ, bytes ໃນໄຟລ໌ຜົນຜະລິດຈະເປັນ
ສັ່ງ 21436587.
ການນໍາໃຊ້ --reverse-bytes=4 ສໍາລັບຕົວຢ່າງຂ້າງເທິງ, bytes ໃນໄຟລ໌ຜົນຜະລິດຈະເປັນ
ສັ່ງ 43218765.
ໂດຍການນໍາໃຊ້ --reverse-bytes=2 ສໍາລັບຕົວຢ່າງຂ້າງເທິງ, ປະຕິບັດຕາມ --reverse-bytes=4 ກ່ຽວກັບ
ໄຟລ໌ຜົນຜະລິດ, bytes ໃນໄຟລ໌ຜົນຜະລິດທີສອງຈະຖືກສັ່ງໃຫ້ 34127856.
--srec-len=ງາວ
ມີຄວາມຫມາຍພຽງແຕ່ສໍາລັບຜົນຜະລິດ srec. ກໍານົດຄວາມຍາວສູງສຸດຂອງ Srecords ໄດ້
ຜະລິດເພື່ອ ງາວ. ຄວາມຍາວນີ້ກວມເອົາທັງທີ່ຢູ່, ຂໍ້ມູນ ແລະຊ່ອງ crc.
--srec-forceS3
ມີຄວາມຫມາຍພຽງແຕ່ສໍາລັບຜົນຜະລິດ srec. ຫຼີກເວັ້ນການຜະລິດບັນທຶກ S1/S2, ການສ້າງ S3 ເທົ່ານັ້ນ
ຮູບແບບການບັນທຶກ.
--reefine-sym ອາຍຸ=ໃຫມ່
ປ່ຽນຊື່ຂອງສັນຍາລັກ ອາຍຸ, ການ ໃຫມ່. ນີ້ສາມາດເປັນປະໂຫຍດໃນເວລາທີ່ຫນຶ່ງກໍາລັງພະຍາຍາມເຊື່ອມຕໍ່
ສອງສິ່ງທີ່ຮ່ວມກັນສໍາລັບການທີ່ທ່ານບໍ່ມີແຫຼ່ງຂໍ້ມູນ, ແລະມີຊື່ collisions.
--redefine-syms=ຊື່ເອກະສານ
ສະຫມັກຂໍເອົາ --reefine-sym ແຕ່ລະຄູ່ສັນຍາລັກ "ອາຍຸ ໃຫມ່" ລະບຸໄວ້ໃນໄຟລ໌ ຊື່ເອກະສານ.
ຊື່ເອກະສານ ແມ່ນພຽງແຕ່ໄຟລ໌ແປ, ມີສັນຍາລັກຫນຶ່ງຄູ່ຕໍ່ແຖວ. ຄໍາເຫັນໃນແຖວອາດຈະເປັນ
ແນະນໍາໂດຍລັກສະນະ hash. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
-- ອ່ອນເພຍ
ປ່ຽນສັນຍາລັກທົ່ວໂລກທັງໝົດໃນໄຟລ໌ໃຫ້ອ່ອນແອ. ນີ້ສາມາດເປັນປະໂຫຍດໃນເວລາທີ່ການກໍ່ສ້າງ
object ທີ່ຈະເຊື່ອມຕໍ່ກັບວັດຖຸອື່ນໆໂດຍໃຊ້ the -R ທາງເລືອກໃນການເຊື່ອມຕໍ່.
ຕົວເລືອກນີ້ມີປະສິດທິພາບພຽງແຕ່ເມື່ອນໍາໃຊ້ຮູບແບບໄຟລ໌ວັດຖຸທີ່ສະຫນັບສະຫນູນອ່ອນແອ
ສັນຍາລັກ.
--keep-symbols=ຊື່ເອກະສານ
ສະຫມັກຂໍເອົາ --keep-ສັນຍາລັກ ທາງເລືອກແຕ່ລະສັນຍາລັກທີ່ລະບຸໄວ້ໃນໄຟລ໌ ຊື່ເອກະສານ. ຊື່ເອກະສານ is
ພຽງແຕ່ໄຟລ໌ແປ, ມີສັນຍາລັກຫນຶ່ງຊື່ຕໍ່ແຖວ. ຄວາມຄິດເຫັນໃນແຖວອາດຈະຖືກນໍາສະເຫນີໂດຍ
ລັກສະນະ hash. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--strip-symbols=ຊື່ເອກະສານ
ສະຫມັກຂໍເອົາ --Strip-ສັນຍາລັກ ທາງເລືອກແຕ່ລະສັນຍາລັກທີ່ລະບຸໄວ້ໃນໄຟລ໌ ຊື່ເອກະສານ. ຊື່ເອກະສານ is
ພຽງແຕ່ໄຟລ໌ແປ, ມີສັນຍາລັກຫນຶ່ງຊື່ຕໍ່ແຖວ. ຄວາມຄິດເຫັນໃນແຖວອາດຈະຖືກນໍາສະເຫນີໂດຍ
ລັກສະນະ hash. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--strip-unneeded-symbols=ຊື່ເອກະສານ
ສະຫມັກຂໍເອົາ --strip-unneeded-ສັນຍາລັກ ທາງເລືອກແຕ່ລະສັນຍາລັກທີ່ລະບຸໄວ້ໃນໄຟລ໌ ຊື່ເອກະສານ.
ຊື່ເອກະສານ ແມ່ນພຽງແຕ່ໄຟລ໌ແປ, ມີສັນຍາລັກຫນຶ່ງຊື່ຕໍ່ແຖວ. ຄໍາເຫັນໃນແຖວອາດຈະເປັນ
ແນະນໍາໂດຍລັກສະນະ hash. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--keep-global-symbols=ຊື່ເອກະສານ
ສະຫມັກຂໍເອົາ --keep-global-ສັນຍາລັກ ທາງເລືອກແຕ່ລະສັນຍາລັກທີ່ລະບຸໄວ້ໃນໄຟລ໌ ຊື່ເອກະສານ.
ຊື່ເອກະສານ ແມ່ນພຽງແຕ່ໄຟລ໌ແປ, ມີສັນຍາລັກຫນຶ່ງຊື່ຕໍ່ແຖວ. ຄໍາເຫັນໃນແຖວອາດຈະເປັນ
ແນະນໍາໂດຍລັກສະນະ hash. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--localize-symbols=ຊື່ເອກະສານ
ສະຫມັກຂໍເອົາ --localize-ສັນຍາລັກ ທາງເລືອກແຕ່ລະສັນຍາລັກທີ່ລະບຸໄວ້ໃນໄຟລ໌ ຊື່ເອກະສານ. ຊື່ເອກະສານ
ແມ່ນພຽງແຕ່ໄຟລ໌ແປ, ມີສັນຍາລັກຫນຶ່ງຊື່ຕໍ່ແຖວ. ຄວາມຄິດເຫັນໃນແຖວອາດຈະຖືກນໍາສະເຫນີ
ໂດຍລັກສະນະ hash. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--globalize-symbols=ຊື່ເອກະສານ
ສະຫມັກຂໍເອົາ --globalize-ສັນຍາລັກ ທາງເລືອກແຕ່ລະສັນຍາລັກທີ່ລະບຸໄວ້ໃນໄຟລ໌ ຊື່ເອກະສານ. ຊື່ເອກະສານ
ແມ່ນພຽງແຕ່ໄຟລ໌ແປ, ມີສັນຍາລັກຫນຶ່ງຊື່ຕໍ່ແຖວ. ຄວາມຄິດເຫັນໃນແຖວອາດຈະຖືກນໍາສະເຫນີ
ໂດຍລັກສະນະ hash. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--weaken-symbols=ຊື່ເອກະສານ
ສະຫມັກຂໍເອົາ --weaken-ສັນຍາລັກ ທາງເລືອກແຕ່ລະສັນຍາລັກທີ່ລະບຸໄວ້ໃນໄຟລ໌ ຊື່ເອກະສານ. ຊື່ເອກະສານ is
ພຽງແຕ່ໄຟລ໌ແປ, ມີສັນຍາລັກຫນຶ່ງຊື່ຕໍ່ແຖວ. ຄວາມຄິດເຫັນໃນແຖວອາດຈະຖືກນໍາສະເຫນີໂດຍ
ລັກສະນະ hash. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--alt-machine-code=ດັດຊະນີ
ຖ້າສະຖາປັດຕະຍະ ກຳ ຜົນຜະລິດມີລະຫັດເຄື່ອງສະຫຼັບ, ໃຫ້ໃຊ້ ດັດຊະນີth code ແທນ
ຂອງຄ່າເລີ່ມຕົ້ນ. ນີ້ແມ່ນເປັນປະໂຫຍດໃນກໍລະນີທີ່ເຄື່ອງໄດ້ຖືກມອບຫມາຍລະຫັດຢ່າງເປັນທາງການແລະ
ລະບົບຕ່ອງໂສ້ເຄື່ອງມືຮັບຮອງເອົາລະຫັດໃຫມ່, ແຕ່ຄໍາຮ້ອງສະຫມັກອື່ນໆຍັງຂຶ້ນກັບ
ລະຫັດຕົ້ນສະບັບຖືກນໍາໃຊ້. ສໍາລັບສະຖາປັດຕະຍະກໍາທີ່ອີງໃສ່ ELF ຖ້າ ດັດຊະນີ ທາງເລືອກເຮັດ
ບໍ່ມີຢູ່ແລ້ວຄ່າແມ່ນຖືວ່າເປັນຕົວເລກຢ່າງແທ້ຈິງທີ່ຈະເກັບໄວ້ໃນ
ພາກສະຫນາມ e_machine ຂອງຫົວ ELF.
--writable-text
ໝາຍຂໍ້ຄວາມທີ່ອອກມາວ່າສາມາດຂຽນໄດ້. ຕົວເລືອກນີ້ບໍ່ມີຄວາມຫມາຍສໍາລັບໄຟລ໌ວັດຖຸທັງຫມົດ
ຮູບແບບຕ່າງໆ.
--readonly-text
ເຮັດໃຫ້ຂໍ້ຄວາມຜົນຜະລິດຂຽນຖືກປ້ອງກັນ. ຕົວເລືອກນີ້ບໍ່ມີຄວາມຫມາຍສໍາລັບວັດຖຸທັງຫມົດ
ຮູບແບບໄຟລ໌.
--ບໍລິສຸດ
ໝາຍໄຟລ໌ຜົນຜະລິດຕາມຄວາມຕ້ອງການທີ່ຈັດໃສ່. ຕົວເລືອກນີ້ບໍ່ມີຄວາມຫມາຍສໍາລັບວັດຖຸທັງຫມົດ
ຮູບແບບໄຟລ໌.
--ບໍ່ສະອາດ
ໝາຍໄຟລ໌ຜົນຜະລິດວ່າບໍ່ສະອາດ. ຕົວເລືອກນີ້ບໍ່ມີຄວາມຫມາຍສໍາລັບໄຟລ໌ວັດຖຸທັງຫມົດ
ຮູບແບບຕ່າງໆ.
--prefix-symbols=string
ຄໍານໍາຫນ້າສັນຍາລັກທັງຫມົດໃນໄຟລ໌ຜົນຜະລິດທີ່ມີ string.
--prefix-sections=string
ນໍາໜ້າຊື່ພາກສ່ວນທັງໝົດໃນໄຟລ໌ຜົນຜະລິດດ້ວຍ string.
--prefix-alloc-sections=string
ຄໍານໍາຫນ້າຊື່ທັງຫມົດຂອງພາກສ່ວນຈັດສັນທັງຫມົດໃນໄຟລ໌ຜົນຜະລິດທີ່ມີ string.
--add-gnu-debuglink=ເສັ້ນທາງໄປຫາໄຟລ໌
ສ້າງພາກສ່ວນ .gnu_debuglink ເຊິ່ງປະກອບດ້ວຍການອ້າງອີງເຖິງ ເສັ້ນທາງໄປຫາໄຟລ໌ ແລະເພີ່ມ
ມັນໄປຫາໄຟລ໌ຜົນຜະລິດ. ຫມາຍເຫດ: ໄຟລ໌ທີ່ ເສັ້ນທາງໄປຫາໄຟລ໌ ຕ້ອງມີຢູ່. ສ່ວນຫນຶ່ງຂອງ
ຂະບວນການເພີ່ມພາກສ່ວນ .gnu_debuglink ກ່ຽວຂ້ອງກັບການຝັງ checksum ຂອງ
ເນື້ອໃນຂອງໄຟລ໌ຂໍ້ມູນ debug ເຂົ້າໄປໃນພາກ.
ຖ້າຫາກວ່າໄຟລ໌ຂໍ້ມູນດີບັກໄດ້ຖືກສ້າງຂຶ້ນຢູ່ໃນສະຖານທີ່ດຽວແຕ່ວ່າມັນຈະໄດ້ຮັບການຕິດຕັ້ງທີ່ a
ເວລາຕໍ່ມາເຂົ້າໄປໃນສະຖານທີ່ທີ່ແຕກຕ່າງກັນຫຼັງຈາກນັ້ນຢ່າໃຊ້ເສັ້ນທາງໄປຫາການຕິດຕັ້ງ
ສະຖານທີ່. ໄດ້ --add-gnu-debuglink ທາງເລືອກຈະລົ້ມເຫລວເນື່ອງຈາກວ່າໄຟລ໌ທີ່ຕິດຕັ້ງເຮັດໄດ້
ຍັງບໍ່ມີ. ແທນທີ່ການວາງໄຟລ໌ຂໍ້ມູນດີບັກໃນໄດເລກະທໍລີປະຈຸບັນແລະນໍາໃຊ້
--add-gnu-debuglink ທາງເລືອກທີ່ບໍ່ມີອົງປະກອບລະບົບໃດຫນຶ່ງ, ເຊັ່ນນີ້:
objcopy --add-gnu-debuglink=foo.debug
ໃນເວລາທີ່ດີບັກ, debugger ຈະພະຍາຍາມຊອກຫາໄຟລ໌ຂໍ້ມູນ debug ແຍກຕ່າງຫາກໃນ a
ຊຸດຂອງສະຖານທີ່ທີ່ຮູ້ຈັກ. ຊຸດທີ່ແນ່ນອນຂອງສະຖານທີ່ເຫຼົ່ານີ້ແຕກຕ່າງກັນໄປຕາມ
ການແຜ່ກະຈາຍທີ່ຖືກນໍາໃຊ້, ແຕ່ໂດຍປົກກະຕິມັນປະກອບມີ:
"* ໄດເລກະທໍລີດຽວກັນກັບຕົວປະຕິບັດ."
"* ບັນຊີຍ່ອຍຂອງໄດເລກະທໍລີທີ່ປະກອບດ້ວຍການດໍາເນີນການໄດ້"
ເອີ້ນວ່າ .debug
"* ໄດເຣັກທໍຣີການດີບັກທົ່ວໂລກເຊັ່ນ /usr/lib/debug."
ຕາບໃດທີ່ໄຟລ໌ຂໍ້ມູນດີບັ໊ກໄດ້ຖືກຕິດຕັ້ງຢູ່ໃນຫນຶ່ງໃນສະຖານທີ່ເຫຼົ່ານີ້ກ່ອນ
debugger ແມ່ນດໍາເນີນການທຸກສິ່ງທຸກຢ່າງຄວນຈະເຮັດວຽກຢ່າງຖືກຕ້ອງ.
--keep-file-ສັນຍາລັກ
ໃນເວລາທີ່ລອກເອົາໄຟລ໌, ບາງທີອາດມີ --strip-debug or --strip-ບໍ່ຈໍາເປັນ, ຮັກສາໃດໆ
ສັນຍາລັກລະບຸຊື່ໄຟລ໌ທີ່ມາ, ຊຶ່ງບໍ່ດັ່ງນັ້ນຈະໄດ້ຮັບການລອກເອົາ.
--only-keep-debug
ຖອດໄຟລ໌ອອກ, ເອົາເນື້ອໃນຂອງພາກສ່ວນຕ່າງໆທີ່ຈະບໍ່ຖືກຖອດອອກ
--strip-debug ແລະປ່ອຍໃຫ້ພາກສ່ວນ debugging intact. ໃນໄຟລ໌ ELF, ນີ້ຮັກສາໄວ້
ທຸກພາກສ່ວນບັນທຶກໃນຜົນຜະລິດ.
ຫມາຍເຫດ - ສ່ວນຫົວຂອງພາກສ່ວນທີ່ຖືກຖອດອອກແມ່ນເກັບຮັກສາໄວ້, ລວມທັງພວກມັນ
ຂະຫນາດ, ແຕ່ເນື້ອໃນຂອງພາກໄດ້ຖືກຍົກເລີກ. ສ່ວນຫົວຂໍ້ແມ່ນ
ເກັບຮັກສາໄວ້ເພື່ອໃຫ້ເຄື່ອງມືອື່ນໆສາມາດຈັບຄູ່ໄຟລ໌ debuginfo ກັບຂອງແທ້
ປະຕິບັດໄດ້, ເຖິງແມ່ນວ່າການປະຕິບັດນັ້ນໄດ້ຖືກຍົກຍ້າຍໄປຫາພື້ນທີ່ທີ່ຢູ່ຕ່າງກັນ.
ຄວາມຕັ້ງໃຈແມ່ນວ່າທາງເລືອກນີ້ຈະຖືກນໍາມາໃຊ້ຮ່ວມກັນກັບ --add-gnu-debuglink
ເພື່ອສ້າງສອງສ່ວນທີ່ສາມາດປະຕິບັດໄດ້. ນຶ່ງສອງຄູ່ທີ່ຖອດອອກເຊິ່ງຈະໃຊ້ພື້ນທີ່ໜ້ອຍລົງ
ໃນ RAM ແລະໃນການແຈກຢາຍແລະທີສອງເປັນໄຟລ໌ຂໍ້ມູນການແກ້ບັນຫາເຊິ່ງມີພຽງແຕ່
ຕ້ອງການຖ້າຫາກວ່າຄວາມສາມາດ debugging ແມ່ນຕ້ອງການ. ຂັ້ນຕອນທີ່ແນະນໍາເພື່ອສ້າງເຫຼົ່ານີ້
ໄຟລ໌ດັ່ງຕໍ່ໄປນີ້:
1.
"foo" ແລ້ວ ...
1.
ສ້າງໄຟລ໌ທີ່ມີຂໍ້ມູນການດີບັກ.
1.
ຖອດອອກໄດ້.
1.
ເພື່ອເພີ່ມລິ້ງໄປຫາຂໍ້ມູນການດີບັກເຂົ້າໄປໃນຕົວປະຕິບັດການທີ່ຖືກຖອດອອກ.
ໝາຍເຫດ --- ທາງເລືອກຂອງ ".dbg" ເປັນສ່ວນຂະຫຍາຍສໍາລັບໄຟລ໌ຂໍ້ມູນດີບັກແມ່ນເປັນຕົວຕົນ.
ນອກຈາກນັ້ນ, ຂັ້ນຕອນ "--only-keep-debug" ແມ່ນທາງເລືອກ. ເຈົ້າສາມາດເຮັດສິ່ງນີ້ແທນ:
1.
1.
1.
1.
ie, ໄຟລ໌ຊີ້ໃຫ້ເຫັນໂດຍ --add-gnu-debuglink ສາມາດປະຕິບັດໄດ້ຢ່າງເຕັມທີ່. ມັນ
ບໍ່ຈໍາເປັນຕ້ອງເປັນໄຟລ໌ທີ່ສ້າງຂຶ້ນໂດຍ --only-keep-debug ສະຫຼັບ.
ໝາຍເຫດ--- ສະວິດນີ້ມີຈຸດປະສົງເພື່ອໃຊ້ໃນໄຟລ໌ທີ່ເຊື່ອມໂຍງຢ່າງຄົບຖ້ວນເທົ່ານັ້ນ. ມັນບໍ່ໄດ້ເຮັດໃຫ້
ຄວາມຮູ້ສຶກທີ່ຈະໃຊ້ມັນຢູ່ໃນໄຟລ໌ວັດຖຸທີ່ຂໍ້ມູນການດີບັກອາດບໍ່ຄົບຖ້ວນ.
ນອກເໜືອໄປຈາກຄຸນສົມບັດ gnu_debuglink ໃນປັດຈຸບັນຍັງຮອງຮັບການມີຊື່ໄຟລ໌ດຽວເທົ່ານັ້ນ
ປະກອບມີຂໍ້ມູນການດີບັກ, ບໍ່ແມ່ນຊື່ໄຟລ໌ຫຼາຍອັນຢູ່ໃນໄຟລ໌ຫນຶ່ງຕໍ່-object-file
ບົນພື້ນຖານ.
--strip-dwo
ເອົາເນື້ອໃນຂອງພາກສ່ວນ DWARF .dwo ທັງຫມົດອອກ, ອອກຈາກການດີບັກທີ່ຍັງເຫຼືອ
ພາກສ່ວນແລະສັນຍາລັກທັງຫມົດ intact. ທາງເລືອກນີ້ແມ່ນມີຈຸດປະສົງສໍາລັບການນໍາໃຊ້ໂດຍ compiler ເປັນ
ສ່ວນ ໜຶ່ງ ຂອງ -gsplit-dwarf ທາງເລືອກ, ເຊິ່ງແບ່ງປັນຂໍ້ມູນດີບັກລະຫວ່າງໄຟລ໌ .o
ແລະໄຟລ໌ .dwo ແຍກຕ່າງຫາກ. compiler ສ້າງຂໍ້ມູນດີບັກທັງໝົດໃນອັນດຽວກັນ
ໄຟລ໌, ຫຼັງຈາກນັ້ນໃຊ້ --extract-dwo ທາງເລືອກທີ່ຈະສໍາເນົາເອົາພາກສ່ວນ .dwo ກັບໄຟລ໌ .dwo,
ຈາກນັ້ນ --strip-dwo ທາງເລືອກທີ່ຈະເອົາພາກສ່ວນເຫຼົ່ານັ້ນອອກຈາກໄຟລ໌ .o ຕົ້ນສະບັບ.
--extract-dwo
ສະກັດເນື້ອໃນຂອງພາກສ່ວນ DWARF .dwo ທັງໝົດ. ເບິ່ງ --strip-dwo ທາງເລືອກສໍາລັບການເພີ່ມເຕີມ
ຂໍ້ມູນຂ່າວສານ.
--ການຈັດຮຽງໄຟລ໌ num
ລະບຸການຈັດຮຽງໄຟລ໌. ພາກສ່ວນຕ່າງໆໃນໄຟລ໌ຈະເລີ່ມຕົ້ນຢູ່ທີ່ການຊົດເຊີຍໄຟລ໌ສະເໝີ
ຊຶ່ງເປັນຕົວຄູນຂອງຕົວເລກນີ້. ນີ້ຄ່າເລີ່ມຕົ້ນເປັນ 512. [ຕົວເລືອກນີ້ແມ່ນສະເພາະ
ເປົ້າໝາຍ PE.]
--heap reserve
--heap reserve,ຄໍາຫມັ້ນສັນຍາ
ລະບຸຈໍານວນຂອງ bytes ຂອງຫນ່ວຍຄວາມຈໍາທີ່ຈະສະຫງວນ (ແລະທາງເລືອກຄໍາຫມັ້ນສັນຍາ) ທີ່ຈະນໍາໃຊ້ເປັນ
heap ສໍາລັບໂຄງການນີ້. [ຕົວເລືອກນີ້ແມ່ນສະເພາະກັບເປົ້າໝາຍ PE.]
--ຮູບ-ຖານ ມູນຄ່າ
ການນໍາໃຊ້ ມູນຄ່າ ເປັນທີ່ຢູ່ພື້ນຖານຂອງໂຄງການຫຼື dll ຂອງທ່ານ. ນີ້ແມ່ນຄວາມຊົງຈໍາຕ່ໍາສຸດ
ສະຖານທີ່ທີ່ຈະຖືກນໍາໃຊ້ໃນເວລາທີ່ໂຄງການຫຼື dll ຂອງທ່ານຖືກໂຫລດ. ເພື່ອຫຼຸດຜ່ອນຄວາມຕ້ອງການ
ການຍົກຍ້າຍແລະປັບປຸງການປະຕິບັດຂອງ dlls ຂອງທ່ານ, ແຕ່ລະຄົນຄວນມີທີ່ຢູ່ພື້ນຖານທີ່ເປັນເອກະລັກ
ແລະບໍ່ທັບຊ້ອນ dll ອື່ນໆ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 0x400000 ສໍາລັບການປະຕິບັດ, ແລະ
0x10000000 ສໍາລັບ dlls. [ຕົວເລືອກນີ້ແມ່ນສະເພາະກັບເປົ້າໝາຍ PE.]
--section-alignment num
ກໍານົດການຈັດລໍາດັບພາກສ່ວນ. ພາກສ່ວນຕ່າງໆໃນໜ່ວຍຄວາມຈຳຈະເລີ່ມຕົ້ນຢູ່ບ່ອນຢູ່ສະເໝີ
ເປັນຕົວຄູນຂອງຕົວເລກນີ້. ຄ່າເລີ່ມຕົ້ນເປັນ 0x1000. [ທາງເລືອກນີ້ແມ່ນສະເພາະກັບ PE
ເປົ້າຫມາຍ.]
-- stack reserve
-- stack reserve,ຄໍາຫມັ້ນສັນຍາ
ລະບຸຈໍານວນຂອງ bytes ຂອງຫນ່ວຍຄວາມຈໍາທີ່ຈະສະຫງວນ (ແລະທາງເລືອກຄໍາຫມັ້ນສັນຍາ) ທີ່ຈະນໍາໃຊ້ເປັນ
stack ສໍາລັບໂຄງການນີ້. [ຕົວເລືອກນີ້ແມ່ນສະເພາະກັບເປົ້າໝາຍ PE.]
-- ລະບົບຍ່ອຍ ທີ່
-- ລະບົບຍ່ອຍ ທີ່:ທີ່ສໍາຄັນ
-- ລະບົບຍ່ອຍ ທີ່:ທີ່ສໍາຄັນ.ເລັກນ້ອຍ
ລະບຸລະບົບຍ່ອຍທີ່ໂຄງການຂອງເຈົ້າຈະປະຕິບັດ. ຄຸນຄ່າທາງກົດໝາຍສຳລັບ
ທີ່ ແມ່ນ "native", "windows", "console", "posix", "efi-app", "efi-bsd", "efi-rtd",
"sal-rtd", ແລະ "xbox". ເຈົ້າສາມາດເລືອກເປັນເວີຊັນຂອງລະບົບຍ່ອຍໄດ້. ຕົວເລກ
ຄຸນຄ່າຍັງຖືກຍອມຮັບ ທີ່. [ຕົວເລືອກນີ້ແມ່ນສະເພາະກັບເປົ້າໝາຍ PE.]
--extract-ສັນຍາລັກ
ຮັກສາທຸງ ແລະສັນຍາລັກຂອງພາກສ່ວນຂອງໄຟລ໌ໄວ້ ແຕ່ເອົາຂໍ້ມູນພາກສ່ວນທັງໝົດອອກ. ໂດຍສະເພາະ,
ທາງເລືອກ:
*
*
*
ທາງເລືອກນີ້ຖືກນໍາໃຊ້ເພື່ອສ້າງເປັນ .sym ໄຟລ໌ສໍາລັບ Kernel VxWorks. ມັນຍັງສາມາດເປັນ
ວິທີທີ່ເປັນປະໂຫຍດຂອງການຫຼຸດຜ່ອນຂະຫນາດຂອງ a --ພຽງແຕ່-ສັນຍາລັກ ໄຟລ໌ເຊື່ອມຕໍ່ຕົວເຊື່ອມຕໍ່.
--compress-debug-sections
ບີບອັດພາກສ່ວນດີບັກ DWARF ໂດຍໃຊ້ zlib ກັບ SHF_COMPRESSED ຈາກ ELF ABI. ຫມາຍເຫດ -
ຖ້າການບີບອັດຕົວຈິງຈະເຮັດໃຫ້ພາກສ່ວນ ຂະຫນາດໃຫຍ່, ຫຼັງຈາກນັ້ນມັນບໍ່ໄດ້ຖືກບີບອັດ.
--compress-debug-sections=ບໍ່ມີ
--compress-debug-sections=zlib
--compress-debug-sections=zlib-gnu
--compress-debug-sections=zlib-gabi
ສຳລັບໄຟລ໌ ELF, ຕົວເລືອກເຫຼົ່ານີ້ຄວບຄຸມວິທີການບີບອັດສ່ວນດີບັກຂອງ DWARF.
--compress-debug-sections=ບໍ່ມີ ເທົ່າກັບ --decompress-debug-sections.
--compress-debug-sections=zlib ແລະ --compress-debug-sections=zlib-gabi ທຽບເທົ່າ
to --compress-debug-sections. --compress-debug-sections=zlib-gnu ບີບອັດ DWARF
ແກ້ໄຂພາກສ່ວນໂດຍໃຊ້ zlib. ພາກສ່ວນດີບັກຖືກປ່ຽນຊື່ເພື່ອເລີ່ມຕົ້ນດ້ວຍ .zdebug
ແທນທີ່ .ດີບັກ. ຫມາຍເຫດ - ຖ້າການບີບອັດຕົວຈິງຈະເຮັດໃຫ້ພາກສ່ວນຫນຶ່ງ ຂະຫນາດໃຫຍ່, ຫຼັງຈາກນັ້ນ
ມັນບໍ່ໄດ້ຖືກບີບອັດ ຫຼືປ່ຽນຊື່.
--decompress-debug-sections
ບີບອັດພາກສ່ວນດີບັກ DWARF ໂດຍໃຊ້ zlib. ຊື່ພາກຕົ້ນສະບັບຂອງ
ພາກສ່ວນທີ່ຖືກບີບອັດຖືກຟື້ນຟູ.
-V
- ການປ່ຽນແປງ
ສະແດງເລກເວີຊັ່ນຂອງ ສຳເນົາ.
-v
-- verbose
Verbose output: ບອກໄຟລ໌ວັດຖຸທັງໝົດທີ່ຖືກດັດແກ້. ໃນກໍລະນີຂອງການເກັບຮັກສາ, ສຳເນົາ -V
ລາຍຊື່ສະມາຊິກທັງໝົດຂອງແຟ້ມຈັດເກັບ.
- ຊ່ວຍ
ສະແດງບົດສະຫຼຸບຂອງທາງເລືອກໃນການ ສຳເນົາ.
-- ຂໍ້ມູນ
ສະແດງລາຍການສະແດງສະຖາປັດຕະຍະກໍາ ແລະຮູບແບບວັດຖຸທັງໝົດທີ່ມີຢູ່.
@ເອກະສານ
ອ່ານຕົວເລືອກແຖວຄໍາສັ່ງຈາກ ເອກະສານ. ທາງເລືອກທີ່ອ່ານໄດ້ຖືກໃສ່ແທນທີ່ຂອງ
ຕົ້ນສະບັບ @ເອກະສານ ທາງເລືອກ. ຖ້າ ເອກະສານ ບໍ່ມີ, ຫຼືບໍ່ສາມາດອ່ານໄດ້, ຫຼັງຈາກນັ້ນທາງເລືອກ
ຈະໄດ້ຮັບການປິ່ນປົວທີ່ຮູ້ຫນັງສື, ແລະບໍ່ໄດ້ຮັບການໂຍກຍ້າຍອອກ.
ຕົວເລືອກຕ່າງໆໃນ ເອກະສານ ຖືກແຍກອອກໂດຍຊ່ອງຫວ່າງ. ອາດມີຕົວອັກສອນຊ່ອງຫວ່າງໃສ່ນຳ
ໃນທາງເລືອກໂດຍການອ້ອມຮອບທາງເລືອກທັງຫມົດໃນວົງຢືມດຽວຫຼືຄູ່. ໃດ
ຕົວອັກສອນ (ລວມທັງ backslash) ອາດຈະຖືກລວມເຂົ້າໂດຍການນໍາຫນ້າຕົວອັກສອນທີ່ຈະເປັນ
ລວມໄປດ້ວຍ backslash. ໄດ້ ເອກະສານ ຕົວຂອງມັນເອງອາດຈະມີ @ ເພີ່ມເຕີມເອກະສານ ທາງເລືອກ; ໃດ
ທາງເລືອກດັ່ງກ່າວຈະຖືກປະມວນຜົນແບບ recursively.
ໃຊ້ aarch64-linux-gnu-objcopy ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net