ນີ້ແມ່ນຄໍາສັ່ງ i686-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 Library ເພື່ອອ່ານ ແລະຂຽນວັດຖຸ
ໄຟລ໌. ມັນສາມາດຂຽນໄຟລ໌ວັດຖຸປາຍທາງໃນຮູບແບບທີ່ແຕກຕ່າງກັນ
ຈາກໄຟລ໌ວັດຖຸທີ່ມາ. ພຶດຕິກໍາທີ່ແນ່ນອນຂອງ ສຳເນົາ is
ຄວບຄຸມໂດຍຕົວເລືອກແຖວຄໍາສັ່ງ. ໃຫ້ສັງເກດວ່າ ສຳເນົາ ຄວນຈະສາມາດ
ເພື່ອຄັດລອກໄຟລ໌ທີ່ເຊື່ອມໂຍງຢ່າງສົມບູນລະຫວ່າງສອງຮູບແບບໃດນຶ່ງ. ຢ່າງໃດກໍຕາມ, ສໍາເນົາ ກ
ໄຟລ໌ວັດຖຸທີ່ຍົກຍ້າຍລະຫວ່າງສອງຮູບແບບໃດຫນຶ່ງອາດຈະບໍ່ເຮັດວຽກເປັນ
ຄາດວ່າ.
ສຳເນົາ ສ້າງໄຟລ໌ຊົ່ວຄາວເພື່ອເຮັດການແປຂອງມັນ ແລະລຶບພວກມັນອອກ
ຫລັງຈາກນັ້ນ. ສຳເນົາ ໃຊ້ BFD ເພື່ອເຮັດວຽກການແປພາສາທັງຫມົດຂອງມັນ; ມັນມີ
ການເຂົ້າເຖິງທຸກຮູບແບບທີ່ອະທິບາຍໄວ້ໃນ BFD ແລະດັ່ງນັ້ນຈຶ່ງສາມາດ
ຮັບຮູ້ຮູບແບບສ່ວນໃຫຍ່ໂດຍບໍ່ໄດ້ບອກຢ່າງຈະແຈ້ງ.
ສຳເນົາ ສາມາດຖືກນໍາໃຊ້ເພື່ອສ້າງບັນທຶກ S ໂດຍການນໍາໃຊ້ເປົ້າຫມາຍຜົນຜະລິດຂອງ
srec (ເຊັ່ນ: ໃຊ້ -O srec).
ສຳເນົາ ສາມາດໃຊ້ເພື່ອສ້າງໄຟລ໌ໄບນາຣີດິບໄດ້ໂດຍການໃຊ້ຜົນຜະລິດ
ເປົ້າຫມາຍຂອງ binary (ເຊັ່ນ: ໃຊ້ -O binary). ເມື່ອໃດ ສຳເນົາ ສ້າງວັດຖຸດິບ
ໄຟລ໌ຖານສອງ, ມັນເປັນສິ່ງຈໍາເປັນທີ່ຈະຜະລິດ dump ຫນ່ວຍຄວາມຈໍາຂອງເນື້ອໃນ
ຂອງໄຟລ໌ວັດຖຸປ້ອນ. ສັນຍາລັກແລະຂໍ້ມູນການຍົກຍ້າຍທັງຫມົດຈະ
ຖືກຍົກເລີກ. ການ dump ຫນ່ວຍຄວາມຈໍາຈະເລີ່ມຕົ້ນຢູ່ທີ່ທີ່ຢູ່ໂຫຼດຂອງ
ພາກສ່ວນຕ່ໍາສຸດຄັດລອກເຂົ້າໄປໃນໄຟລ໌ຜົນຜະລິດ.
ໃນເວລາທີ່ການສ້າງ S-record ຫຼືໄຟລ໌ໄບນາລີເປັນວັດຖຸດິບ, ມັນອາດຈະເປັນປະໂຫຍດ
ການນໍາໃຊ້ -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_ເລີ່ມ,
_binary_objfile_end ແລະ _binary_objfile_ຂະໜາດ. ຕົວຢ່າງ: ເຈົ້າສາມາດ
ປ່ຽນໄຟລ໌ຮູບເປັນໄຟລ໌ວັດຖຸ ແລະຈາກນັ້ນເຂົ້າຫາມັນ
ລະຫັດຂອງທ່ານໂດຍໃຊ້ສັນຍາລັກເຫຼົ່ານີ້.
-j ຮູບແບບພາກ
--only-section=ຮູບແບບພາກ
ຄັດລອກພຽງແຕ່ສ່ວນທີ່ລະບຸຈາກໄຟລ໌ປ້ອນຂໍ້ມູນໄປຫາຜົນໄດ້ຮັບ
ໄຟລ໌. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ. ໃຫ້ສັງເກດວ່າການນໍາໃຊ້
ທາງເລືອກນີ້ບໍ່ເຫມາະສົມອາດຈະເຮັດໃຫ້ໄຟລ໌ຜົນຜະລິດບໍ່ສາມາດໃຊ້ງານໄດ້.
ຕົວອັກສອນແທນນາມຖືກຍອມຮັບໃນ ຮູບແບບພາກ.
-R ຮູບແບບພາກ
--remove-section=ຮູບແບບພາກ
ເອົາພາກສ່ວນໃດນຶ່ງທີ່ກົງກັນອອກ ຮູບແບບພາກ ຈາກໄຟລ໌ຜົນຜະລິດໄດ້.
ຕົວເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ. ໃຫ້ສັງເກດວ່າການນໍາໃຊ້ນີ້
ທາງເລືອກທີ່ບໍ່ເຫມາະສົມອາດຈະເຮັດໃຫ້ໄຟລ໌ຜົນຜະລິດບໍ່ສາມາດໃຊ້ງານໄດ້. ຕົວແທນ
ຕົວອັກສອນຖືກຍອມຮັບໃນ ຮູບແບບພາກ. ການນໍາໃຊ້ທັງສອງ -j ແລະ
-R ທາງເລືອກຮ່ວມກັນເຮັດໃຫ້ພຶດຕິກໍາທີ່ບໍ່ໄດ້ກໍານົດ.
-S
--strip-ທັງໝົດ
ຢ່າຄັດລອກຂໍ້ມູນການຍົກຍ້າຍແລະສັນຍາລັກຈາກໄຟລ໌ແຫຼ່ງ.
-g
--strip-debug
ຫ້າມຄັດລອກສັນຍາລັກຫຼືພາກສ່ວນການດີບັກຈາກໄຟລ໌ແຫຼ່ງ.
--strip-ບໍ່ຈໍາເປັນ
ຖອດສັນຍາລັກທັງໝົດທີ່ບໍ່ຈຳເປັນສຳລັບການຍົກຍ້າຍ.
-K ສັນຍາລັກ
--keep-symbol=ສັນຍາລັກ
ເມື່ອລອກເອົາສັນຍາລັກ, ຮັກສາສັນຍາລັກ ສັນຍາລັກ ເຖິງແມ່ນວ່າມັນຈະ
ປົກກະຕິຈະຖືກຖອດອອກ. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
-N ສັນຍາລັກ
--strip-symbol=ສັນຍາລັກ
ຫ້າມສຳເນົາສັນຍາລັກ ສັນຍາລັກ ຈາກໄຟລ໌ແຫຼ່ງ. ທາງເລືອກນີ້
ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--strip-unneeded-symbol=ສັນຍາລັກ
ຫ້າມສຳເນົາສັນຍາລັກ ສັນຍາລັກ ຈາກໄຟລ໌ແຫຼ່ງເວັ້ນເສຍແຕ່ວ່າມັນແມ່ນ
ຕ້ອງການໂດຍການຍົກຍ້າຍ. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
-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"
ຍົກເວັ້ນສັນຍາລັກ "foo".
-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 ທາງເລືອກ. ເລືອກຄວາມກວ້າງຂອງໄລຍະທີ່ມີ
--interleave-width ທາງເລືອກ.
ທາງເລືອກນີ້ແມ່ນເປັນປະໂຫຍດສໍາລັບການສ້າງໄຟລ໌ກັບໂຄງການ ROM. ມັນແມ່ນ
ປົກກະຕິແລ້ວໃຊ້ກັບເປົ້າຫມາຍຜົນຜະລິດ "srec". ໃຫ້ສັງເກດວ່າ ສຳເນົາ
ຈະຈົ່ມຖ້າຫາກວ່າທ່ານບໍ່ໄດ້ລະບຸ --byte ທາງເລືອກເຊັ່ນດຽວກັນ.
ຄວາມກວ້າງຂອງ interleave ເລີ່ມຕົ້ນແມ່ນ 4, ດັ່ງນັ້ນ --byte ຕັ້ງເປັນ 0,
ສຳເນົາ ຈະຄັດລອກ byte ທໍາອິດອອກຈາກທຸກໆສີ່ bytes ຈາກ
ປ້ອນກັບຜົນຜະລິດໄດ້.
--interleave-width=width
ເມື່ອໃຊ້ກັບ -- interleave ທາງເລືອກ, ສໍາເນົາ width bytes ໃນເວລາ.
ການເລີ່ມຕົ້ນຂອງຂອບເຂດຂອງ bytes ທີ່ຈະຄັດລອກແມ່ນຖືກກໍານົດໂດຍ --byte
ທາງເລືອກ, ແລະຂອບເຂດຂອງໄລຍະແມ່ນຖືກກໍານົດດ້ວຍ -- interleave
ທາງເລືອກ.
ຄ່າເລີ່ມຕົ້ນສໍາລັບທາງເລືອກນີ້ແມ່ນ 1. ມູນຄ່າຂອງ width ບວກ
ໄດ້ byte ມູນຄ່າທີ່ກໍານົດໄວ້ໂດຍ --byte ທາງເລືອກບໍ່ຕ້ອງເກີນ
ຄວາມກວ້າງຂອງ interleave ກໍານົດໂດຍ -- interleave ທາງເລືອກ.
ທາງເລືອກນີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອສ້າງຮູບພາບສໍາລັບສອງ flashes 16-bit
interleaved ໃນລົດເມ 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
ດໍາເນີນການໃນ ການ ກຳ ນົດ ໂໝດ. ໃນເວລາທີ່ຄັດລອກສະມາຊິກຮວບຮວມແລະ
ການຂຽນດັດສະນີເກັບ, ໃຊ້ສູນສໍາລັບ UIDs, GIDs, timestamps, ແລະ
ໃຊ້ຮູບແບບໄຟລ໌ທີ່ສອດຄ່ອງສໍາລັບທຸກໄຟລ໌.
If binutils ໄດ້ configured ກັບ --enable-deterministic-archives,
ຫຼັງຈາກນັ້ນ, ຮູບແບບນີ້ແມ່ນຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ. ມັນສາມາດໄດ້ຮັບການພິການດ້ວຍ -U
ທາງເລືອກ, ຂ້າງລຸ່ມນີ້.
-U
--disable-deterministic-archives
Do ບໍ່ ປະຕິບັດງານໃນ ການ ກຳ ນົດ ໂໝດ. ນີ້ແມ່ນ inverse ຂອງ
-D ທາງເລືອກ, ຂ້າງເທິງ: ເມື່ອຄັດລອກສະມາຊິກຮວບຮວມແລະຂຽນ
archive index, ໃຊ້ UID ຕົວຈິງຂອງເຂົາເຈົ້າ, GID, timestamp, ແລະຮູບແບບໄຟລ໌
ຄ່າ.
ນີ້ແມ່ນຄ່າເລີ່ມຕົ້ນເວັ້ນເສຍແຕ່ binutils ໄດ້ configured ກັບ
--enable-deterministic-archives.
-- debugging
ປ່ຽນຂໍ້ມູນການດີບັກ, ຖ້າເປັນໄປໄດ້. ນີ້ບໍ່ແມ່ນ
ຄ່າເລີ່ມຕົ້ນເພາະວ່າພຽງແຕ່ຮູບແບບການດີບັກທີ່ແນ່ນອນໄດ້ຮັບການສະຫນັບສະຫນູນ, ແລະ
ຂະບວນການປ່ຽນໃຈເຫລື້ອມໃສສາມາດໃຊ້ເວລາຫຼາຍ.
--gap-ຕື່ມ h
ຕື່ມຂໍ້ມູນໃສ່ຊ່ອງຫວ່າງລະຫວ່າງພາກສ່ວນທີ່ມີ h. ການດໍາເນີນງານນີ້ໃຊ້ກັບ
load ທີ່ຢູ່ (LMA) ຂອງພາກສ່ວນ. ມັນແມ່ນເຮັດໄດ້ໂດຍການເພີ່ມຂຶ້ນ
ຂະຫນາດຂອງພາກສ່ວນທີ່ມີທີ່ຢູ່ຕ່ໍາກວ່າ, ແລະການຕື່ມຂໍ້ມູນໃສ່ໃນ
ພື້ນທີ່ພິເສດທີ່ສ້າງຂຶ້ນດ້ວຍ h.
--pad-to ທີ່ຢູ່
pad ໄຟລ໌ຜົນຜະລິດໄດ້ເຖິງທີ່ຢູ່ການໂຫຼດ ທີ່ຢູ່. ນີ້ແມ່ນເຮັດແລ້ວ
ໂດຍການເພີ່ມຂະຫນາດຂອງພາກສຸດທ້າຍ. ພື້ນທີ່ພິເສດແມ່ນ
ຕື່ມຂໍ້ມູນໃສ່ໃນມູນຄ່າທີ່ກໍານົດໄວ້ໂດຍ --gap-ຕື່ມ (ສູນຄ່າເລີ່ມຕົ້ນ).
--set-start h
ກໍານົດທີ່ຢູ່ເລີ່ມຕົ້ນຂອງໄຟລ໌ໃຫມ່ເປັນ h. ບໍ່ແມ່ນໄຟລ໌ວັດຖຸທັງໝົດ
ຮູບແບບສະຫນັບສະຫນູນການຕັ້ງຄ່າທີ່ຢູ່ເລີ່ມຕົ້ນ.
--ການເລີ່ມຕົ້ນການປ່ຽນແປງ incr
--ປັບ-ເລີ່ມ incr
ປ່ຽນທີ່ຢູ່ເລີ່ມຕົ້ນໂດຍການເພີ່ມ incr. ບໍ່ແມ່ນໄຟລ໌ວັດຖຸທັງໝົດ
ຮູບແບບສະຫນັບສະຫນູນການຕັ້ງຄ່າທີ່ຢູ່ເລີ່ມຕົ້ນ.
--ການປ່ຽນແປງທີ່ຢູ່ incr
--ປັບ-vma incr
ປ່ຽນທີ່ຢູ່ VMA ແລະ LMA ຂອງທຸກພາກສ່ວນ, ເຊັ່ນດຽວກັນກັບ
ທີ່ຢູ່ເລີ່ມຕົ້ນ, ໂດຍການເພີ່ມ incr. ບາງຮູບແບບໄຟລ໌ວັດຖຸບໍ່
ອະນຸຍາດໃຫ້ທີ່ຢູ່ພາກສ່ວນທີ່ຈະປ່ຽນແປງໂດຍຕົນເອງ. ໃຫ້ສັງເກດວ່ານີ້
ບໍ່ໄດ້ຍົກຍ້າຍພາກສ່ວນ; ຖ້າໂຄງການຄາດວ່າຈະມີພາກສ່ວນຕ່າງໆ
ຈະຖືກໂຫລດຢູ່ໃນທີ່ຢູ່ທີ່ແນ່ນອນ, ແລະທາງເລືອກນີ້ຖືກນໍາໃຊ້ເພື່ອປ່ຽນແປງ
ພາກສ່ວນທີ່ເຂົາເຈົ້າໄດ້ຖືກໂຫລດຢູ່ໃນທີ່ຢູ່ທີ່ແຕກຕ່າງກັນ, ໄດ້
ໂຄງການອາດຈະລົ້ມເຫລວ.
--change-section-address ຮູບແບບພາກ{=,+,-}h
--adjust-section-vma ຮູບແບບພາກ{=,+,-}h
ຕັ້ງ ຫຼືປ່ຽນທັງທີ່ຢູ່ VMA ແລະທີ່ຢູ່ LMA ຂອງອັນໃດນຶ່ງ
ການຈັບຄູ່ພາກສ່ວນ ຮູບແບບພາກທີ່ຢູ່ ຖ້າຫາກວ່າ = ຖືກນໍາໃຊ້, ທີ່ຢູ່ພາກ
ຖືກກໍານົດໃຫ້ h. ຖ້າບໍ່ດັ່ງນັ້ນ, h ຖືກເພີ່ມໃສ່ ຫຼືຫັກອອກຈາກ
ທີ່ຢູ່ພາກ. ເບິ່ງຄໍາເຫັນພາຍໃຕ້ --ການປ່ຽນແປງທີ່ຢູ່, ຂ້າງເທິງ.
If ຮູບແບບພາກ ບໍ່ກົງກັບພາກສ່ວນໃດນຶ່ງໃນໄຟລ໌ປ້ອນຂໍ້ມູນ, a
ການເຕືອນໄພຈະຖືກອອກ, ເວັ້ນເສຍແຕ່ -- ການເຕືອນໄພບໍ່ມີການປ່ຽນແປງ ຖືກນໍາໃຊ້.
--change-section-lma ຮູບແບບພາກ{=,+,-}h
ຕັ້ງ ຫຼືປ່ຽນທີ່ຢູ່ LMA ຂອງພາກສ່ວນໃດນຶ່ງທີ່ກົງກັນ
ຮູບແບບພາກ. ທີ່ຢູ່ LMA ແມ່ນທີ່ຢູ່ຂອງພາກສ່ວນ
ຈະຖືກໂຫລດເຂົ້າໄປໃນຫນ່ວຍຄວາມຈໍາໃນເວລາໂຫລດໂຄງການ. ປົກກະຕິແລ້ວນີ້ແມ່ນ
ດຽວກັນກັບທີ່ຢູ່ VMA, ເຊິ່ງເປັນທີ່ຢູ່ຂອງພາກສ່ວນທີ່
program run time, ແຕ່ໃນບາງລະບົບ, ໂດຍສະເພາະທີ່ a
ໂຄງການແມ່ນຈັດຂຶ້ນໃນ ROM, ທັງສອງສາມາດແຕກຕ່າງກັນ. ຖ້າ = ຖືກນໍາໃຊ້,
ທີ່ຢູ່ພາກສ່ວນແມ່ນຕັ້ງເປັນ h. ຖ້າບໍ່ດັ່ງນັ້ນ, h ຖືກເພີ່ມໃສ່ຫຼື
ຫັກອອກຈາກທີ່ຢູ່ພາກ. ເບິ່ງຄໍາເຫັນພາຍໃຕ້
--ການປ່ຽນແປງທີ່ຢູ່, ຂ້າງເທິງ. ຖ້າ ຮູບແບບພາກ ບໍ່ກົງກັນໃດໆ
ພາກສ່ວນໃນໄຟລ໌ປ້ອນຂໍ້ມູນ, ການເຕືອນໄພຈະຖືກອອກ, ເວັ້ນເສຍແຕ່
-- ການເຕືອນໄພບໍ່ມີການປ່ຽນແປງ ຖືກນໍາໃຊ້.
--change-section-vma ຮູບແບບພາກ{=,+,-}h
ຕັ້ງ ຫຼືປ່ຽນທີ່ຢູ່ VMA ຂອງພາກສ່ວນໃດນຶ່ງທີ່ກົງກັນ
ຮູບແບບພາກ. ທີ່ຢູ່ VMA ແມ່ນທີ່ຢູ່ຂອງພາກສ່ວນ
ຈະຕັ້ງຢູ່ເມື່ອໂຄງການໄດ້ເລີ່ມປະຕິບັດ. ປົກກະຕິ
ນີ້ແມ່ນຄືກັນກັບທີ່ຢູ່ LMA, ເຊິ່ງເປັນທີ່ຢູ່ທີ່
ສ່ວນຈະຖືກໂຫລດເຂົ້າໄປໃນຫນ່ວຍຄວາມຈໍາ, ແຕ່ໃນບາງລະບົບ, ໂດຍສະເພາະ
ຜູ້ທີ່ໂຄງການຖືກຈັດຂຶ້ນໃນ ROM, ທັງສອງສາມາດແຕກຕ່າງກັນ. ຖ້າ
= ຖືກນໍາໃຊ້, ທີ່ຢູ່ພາກແມ່ນກໍານົດເປັນ h. ຖ້າບໍ່ດັ່ງນັ້ນ, h is
ເພີ່ມ ຫຼື ຫັກອອກຈາກທີ່ຢູ່ພາກ. ເບິ່ງຄໍາເຫັນ
ພາຍໃຕ້ການ --ການປ່ຽນແປງທີ່ຢູ່, ຂ້າງເທິງ. ຖ້າ ຮູບແບບພາກ ບໍ່ກົງກັນ
ພາກສ່ວນໃດນຶ່ງໃນໄຟລ໌ປ້ອນຂໍ້ມູນ, ການເຕືອນຈະຖືກອອກ, ເວັ້ນເສຍແຕ່
-- ການເຕືອນໄພບໍ່ມີການປ່ຽນແປງ ຖືກນໍາໃຊ້.
--ຄໍາເຕືອນການປ່ຽນແປງ
-- ປັບ-ເຕືອນ
If --change-section-address or --change-section-lma or
--change-section-vma ຖືກນໍາໃຊ້, ແລະຮູບແບບພາກບໍ່ໄດ້
ກົງກັບພາກສ່ວນໃດນຶ່ງ, ອອກຄໍາເຕືອນ. ນີ້ແມ່ນຄ່າເລີ່ມຕົ້ນ.
-- ການເຕືອນໄພບໍ່ມີການປ່ຽນແປງ
--no-adjust-ການເຕືອນ
ຢ່າອອກຄໍາເຕືອນຖ້າຫາກວ່າ --change-section-address or
--adjust-section-lma or --adjust-section-vma ຖືກນໍາໃຊ້, ເຖິງແມ່ນວ່າ
ຮູບແບບພາກສ່ວນບໍ່ກົງກັບພາກສ່ວນໃດນຶ່ງ.
--set-section-flags ຮູບແບບພາກ=ທົງ
ກໍານົດທຸງສໍາລັບພາກສ່ວນໃດທີ່ກົງກັນ ຮູບແບບພາກ. ໄດ້ ທົງ
argument ແມ່ນເຄື່ອງໝາຍຈຸດທີ່ແຍກອອກຂອງຊື່ທຸງ. ການຮັບຮູ້
ຊື່ແມ່ນ ຈັດສັນ, ເນື້ອຫາ, load, noload, ອ່ານຢ່າງດຽວ, ລະຫັດ, ຂໍ້ມູນ, ໂລມ,
share, ແລະ debug. ທ່ານສາມາດກໍານົດ ເນື້ອຫາ ທຸງສໍາລັບພາກສ່ວນ
ເຊິ່ງບໍ່ມີເນື້ອໃນ, ແຕ່ມັນບໍ່ມີຄວາມຫມາຍທີ່ຈະລຶບລ້າງ
ເນື້ອຫາ ທຸງຂອງພາກສ່ວນທີ່ມີເນື້ອໃນ -- ພຽງແຕ່ເອົາອອກ
ພາກສ່ວນແທນ. ບໍ່ແມ່ນທຸງທັງໝົດມີຄວາມໝາຍສຳລັບວັດຖຸທັງໝົດ
ຮູບແບບໄຟລ໌.
--ສ່ວນຕື່ມ ຊື່ພາກ=ຊື່ເອກະສານ
ເພີ່ມພາກໃຫມ່ທີ່ມີຊື່ ຊື່ພາກ ໃນຂະນະທີ່ການຄັດລອກໄຟລ໌. ໄດ້
ເນື້ອໃນຂອງພາກໃຫມ່ແມ່ນເອົາມາຈາກໄຟລ໌ ຊື່ເອກະສານ. ໄດ້
ຂະຫນາດຂອງພາກສ່ວນຈະເປັນຂະຫນາດຂອງໄຟລ໌. ທາງເລືອກນີ້ເທົ່ານັ້ນ
ເຮັດວຽກຢູ່ໃນຮູບແບບໄຟລ໌ທີ່ສາມາດສະຫນັບສະຫນູນພາກສ່ວນທີ່ມີ arbitrary
ຊື່. ຫມາຍເຫດ - ມັນອາດຈະມີຄວາມຈໍາເປັນທີ່ຈະໃຊ້ --set-section-flags
ທາງເລືອກທີ່ຈະກໍານົດຄຸນລັກສະນະຂອງພາກສ່ວນທີ່ສ້າງຂຶ້ນໃຫມ່.
-- dump-section ຊື່ພາກ=ຊື່ເອກະສານ
ວາງເນື້ອໃນຂອງພາກສ່ວນທີ່ມີຊື່ ຊື່ພາກ ເຂົ້າໄປໃນໄຟລ໌
ຊື່ເອກະສານ, ຂຽນທັບເນື້ອໃນທີ່ອາດຈະຢູ່ທີ່ນັ້ນ
ກ່ອນຫນ້ານີ້. ທາງເລືອກນີ້ແມ່ນກົງກັນຂ້າມຂອງ --ສ່ວນຕື່ມ. ນີ້
ທາງເລືອກແມ່ນຄ້າຍຄືກັນກັບ -- ພາກສ່ວນເທົ່ານັ້ນ ທາງເລືອກຍົກເວັ້ນວ່າມັນເຮັດ
ບໍ່ສ້າງໄຟລ໌ທີ່ມີຮູບແບບ, ມັນພຽງແຕ່ dumps ເນື້ອໃນເປັນວັດຖຸດິບ
ຂໍ້ມູນຖານສອງ, ໂດຍບໍ່ມີການນໍາໃຊ້ການຍົກຍ້າຍໃດໆ. ທາງເລືອກສາມາດເປັນ
ລະບຸຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--update-section ຊື່ພາກ=ຊື່ເອກະສານ
ແທນທີ່ເນື້ອໃນທີ່ມີຢູ່ແລ້ວຂອງພາກສ່ວນທີ່ມີຊື່ ຊື່ພາກ ກັບ
ເນື້ອໃນຂອງໄຟລ໌ ຊື່ເອກະສານ. ຂະຫນາດຂອງສ່ວນຈະເປັນ
ປັບຂະຫນາດຂອງໄຟລ໌. ພາກສ່ວນທຸງສໍາລັບ
ຊື່ພາກ ຈະບໍ່ປ່ຽນແປງ. ສໍາລັບຮູບແບບ ELF ໄຟລ໌ພາກສ່ວນທີ່ຈະ
ການສ້າງແຜນທີ່ segment ຍັງຈະບໍ່ປ່ຽນແປງ, ບາງສິ່ງບາງຢ່າງບໍ່ແມ່ນ
ການນໍາໃຊ້ທີ່ເປັນໄປໄດ້ --remove-section ປະຕິບັດຕາມໂດຍ --ສ່ວນຕື່ມ. ໄດ້
ທາງເລືອກສາມາດຖືກລະບຸຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
ຫມາຍເຫດ - ມັນເປັນໄປໄດ້ທີ່ຈະນໍາໃຊ້ --ປ່ຽນຊື່ພາກສ່ວນ ແລະ --update-section
ທັງປັບປຸງແລະປ່ຽນຊື່ພາກສ່ວນຈາກແຖວຄໍາສັ່ງ. ໃນນີ້
ກໍ ລະ ນີ, ຜ່ານ ຊື່ ພາກ ສ່ວນ ຕົ້ນ ສະ ບັບ --update-section, ແລະ
ຊື່ພາກຕົ້ນສະບັບແລະໃຫມ່ເພື່ອ --ປ່ຽນຊື່ພາກສ່ວນ.
--add-ສັນຍາລັກ ຊື່=[ສ່ວນ:]ມູນຄ່າ[,ທົງ]
ເພີ່ມສັນຍາລັກໃຫມ່ທີ່ມີຊື່ ຊື່ ໃນຂະນະທີ່ການຄັດລອກໄຟລ໌. ທາງເລືອກນີ້
ອາດຈະຖືກກໍານົດຫຼາຍຄັ້ງ. ຖ້າ ສ່ວນ ແມ່ນໃຫ້, ໄດ້
ສັນຍາລັກຈະກ່ຽວຂ້ອງກັບແລະກ່ຽວຂ້ອງກັບພາກສ່ວນນັ້ນ,
ຖ້າບໍ່ດັ່ງນັ້ນມັນຈະເປັນສັນຍາລັກ ABS. ກໍານົດການບໍ່ໄດ້ກໍານົດ
ພາກສ່ວນຈະສົ່ງຜົນໃຫ້ເກີດຄວາມຜິດພາດຮ້າຍແຮງ. ບໍ່ມີການກວດສອບສໍາລັບ
ມູນຄ່າ, ມັນຈະຖືກປະຕິບັດຕາມທີ່ລະບຸ. ທຸງສັນຍາລັກສາມາດເປັນ
ລະບຸໄວ້ ແລະບໍ່ແມ່ນທຸງທັງໝົດຈະມີຄວາມຫມາຍສໍາລັບໄຟລ໌ວັດຖຸທັງໝົດ
ຮູບແບບ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ສັນຍາລັກຈະເປັນທົ່ວໂລກ. ທຸງພິເສດ
'ກ່ອນ =ອື່ນ' ຈະໃສ່ສັນຍາລັກໃຫມ່ຢູ່ທາງຫນ້າຂອງ
ລະບຸ ອື່ນຖ້າບໍ່ດັ່ງນັ້ນສັນຍາລັກຈະຖືກເພີ່ມໃສ່
ສິ້ນສຸດຕາຕະລາງສັນຍາລັກຕາມລໍາດັບທີ່ປາກົດ.
--ປ່ຽນຊື່ພາກສ່ວນ ຊື່ເກົ່າ=ຊື່ໃໝ່[,ທົງ]
ປ່ຽນຊື່ພາກສ່ວນຈາກ ຊື່ເກົ່າ to ຊື່ໃໝ່, ທາງເລືອກການປ່ຽນແປງ
ທຸງຂອງພາກສ່ວນເພື່ອ ທົງ ໃນຂະບວນການ. ນີ້ມີປະໂຫຍດ
ຜ່ານ usng script linker ເພື່ອປະຕິບັດການປ່ຽນຊື່ໃນຜົນໄດ້ຮັບ
ຄົງຢູ່ເປັນໄຟລ໌ວັດຖຸແລະບໍ່ກາຍເປັນການເຊື່ອມຕໍ່ທີ່ສາມາດປະຕິບັດໄດ້.
ທາງເລືອກນີ້ແມ່ນເປັນປະໂຫຍດໂດຍສະເພາະໃນເວລາທີ່ຮູບແບບການປ້ອນຂໍ້ມູນ
binary, ເນື່ອງຈາກວ່ານີ້ສະເຫມີຈະສ້າງພາກສ່ວນທີ່ເອີ້ນວ່າ .data. ຖ້າ
ຕົວຢ່າງ, ທ່ານຕ້ອງການສ້າງພາກສ່ວນທີ່ເອີ້ນວ່າ .rodata ແທນ
ປະກອບດ້ວຍຂໍ້ມູນຖານສອງທີ່ທ່ານສາມາດນໍາໃຊ້ເສັ້ນຄໍາສັ່ງຕໍ່ໄປນີ້ເພື່ອ
ບັນລຸມັນ:
objcopy -I binary -O - ຂ \
--rename-section .data=.rodata,alloc,load,readonly,data,contents \
--long-section-names {enable,disable,keep}
ຄວບຄຸມການຈັດການຊື່ພາກສ່ວນຍາວໃນເວລາປະມວນຜົນ "COFF"
ແລະ "PE-COFF" ຮູບແບບວັດຖຸ. ພຶດຕິກໍາໃນຕອນຕົ້ນ, ຮັກສາ, ແມ່ນເພື່ອ
ຮັກສາຊື່ພາກສ່ວນຍາວຖ້າມີຢູ່ໃນໄຟລ໌ປ້ອນຂໍ້ມູນ.
ໄດ້ ເຮັດໃຫ້ສາມາດ ແລະ ປິດການໃຊ້ວຽກ ທາງເລືອກບັງຄັບໃຫ້ເປີດ ຫຼືປິດການນຳໃຊ້
ຊື່ຂອງພາກສ່ວນຍາວຢູ່ໃນວັດຖຸຜົນຜະລິດ; ເມື່ອໃດ ປິດການໃຊ້ວຽກ ແມ່ນຢູ່ໃນ
ຜົນກະທົບ, ຊື່ພາກສ່ວນຍາວໃດຫນຶ່ງໃນວັດຖຸປະກອບຈະເປັນ
ຖືກຕັດອອກ. ໄດ້ ເຮັດໃຫ້ສາມາດ ທາງເລືອກພຽງແຕ່ຈະປ່ອຍຊື່ພາກສ່ວນຍາວຖ້າ
ໃດໆທີ່ມີຢູ່ໃນວັດສະດຸປ້ອນ; ນີ້ສ່ວນຫຼາຍແມ່ນຄືກັນກັບ ຮັກສາ, ແຕ່
ມັນໄດ້ຖືກປະໄວ້ໂດຍບໍ່ໄດ້ກໍານົດບໍ່ວ່າຈະເປັນ ເຮັດໃຫ້ສາມາດ ທາງເລືອກອາດຈະບັງຄັບໃຫ້
ການສ້າງຕາຕະລາງ string ຫວ່າງເປົ່າໃນໄຟລ໌ຜົນຜະລິດ.
--change-leading-char
ບາງຮູບແບບໄຟລ໌ວັດຖຸໃຊ້ຕົວອັກສອນພິເສດໃນຕອນເລີ່ມຕົ້ນຂອງ
ສັນຍາລັກ. ລັກສະນະທົ່ວໄປທີ່ສຸດແມ່ນ underscore, ເຊິ່ງ
compilers ມັກຈະເພີ່ມກ່ອນທຸກໆສັນຍາລັກ. ທາງເລືອກນີ້ບອກ ສຳເນົາ
ເພື່ອປ່ຽນລັກສະນະຊັ້ນນໍາຂອງທຸກໆສັນຍາລັກເມື່ອມັນປ່ຽນ
ລະຫວ່າງຮູບແບບໄຟລ໌ວັດຖຸ. ຖ້າຮູບແບບໄຟລ໌ວັດຖຸໃຊ້
ລັກສະນະນໍາຫນ້າດຽວກັນ, ທາງເລືອກນີ້ບໍ່ມີຜົນກະທົບ. ຖ້າບໍ່ດັ່ງນັ້ນ, ມັນ
ຈະເພີ່ມຕົວອັກສອນ, ຫຼືລຶບຕົວອັກສອນ, ຫຼືປ່ຽນຕົວອັກສອນ,
ຕາມຄວາມເຫມາະສົມ.
--remove-leading-char
ຖ້າລັກສະນະທໍາອິດຂອງສັນຍາລັກທົ່ວໂລກແມ່ນສັນຍາລັກພິເສດ
ຕົວອັກສອນຊັ້ນນໍາທີ່ໃຊ້ໂດຍຮູບແບບໄຟລ໌ວັດຖຸ, ເອົາອອກ
ລັກສະນະ. ສັນຍາລັກທົ່ວໄປທີ່ສຸດລັກສະນະນໍາຫນ້າແມ່ນ underscore.
ໂຕເລືອກນີ້ຈະເອົາຈຸດຂີດກ້ອງອອກຈາກທົ່ວໂລກທັງໝົດ
ສັນຍາລັກ. ນີ້ສາມາດເປັນປະໂຫຍດຖ້າຫາກວ່າທ່ານຕ້ອງການທີ່ຈະເຊື່ອມຕໍ່ກັນວັດຖຸ
ຂອງຮູບແບບໄຟລ໌ທີ່ແຕກຕ່າງກັນທີ່ມີສົນທິສັນຍາທີ່ແຕກຕ່າງກັນສໍາລັບສັນຍາລັກ
ຊື່. ນີ້ແມ່ນແຕກຕ່າງຈາກ --change-leading-char ເນື່ອງຈາກວ່າມັນ
ສະເຫມີປ່ຽນຊື່ສັນຍາລັກໃນເວລາທີ່ເຫມາະສົມ, ບໍ່ວ່າຈະເປັນ
ຮູບແບບໄຟລ໌ວັດຖຸຂອງໄຟລ໌ຜົນຜະລິດ.
--reverse-bytes=num
ປີ້ນກັບ bytes ໃນພາກສ່ວນທີ່ມີເນື້ອໃນຜົນຜະລິດ. ພາກສ່ວນ
ຄວາມຍາວຕ້ອງຖືກແບ່ງອອກເທົ່າທຽມກັນໂດຍຄ່າທີ່ໄດ້ຮັບໃນຄໍາສັ່ງສໍາລັບການ
ແລກປ່ຽນເພື່ອໃຫ້ສາມາດຈັດຂຶ້ນ. Reversing ເກີດຂຶ້ນກ່ອນທີ່ຈະ
interleaving ແມ່ນປະຕິບັດ.
ຕົວເລືອກນີ້ຖືກນໍາໃຊ້ໂດຍທົ່ວໄປໃນການສ້າງຮູບພາບ ROM ສໍາລັບ
ລະບົບເປົ້າໝາຍທີ່ມີບັນຫາ. ຕົວຢ່າງ, ໃນບາງກະດານເປົ້າຫມາຍ,
ຄຳສັບ 32-bit ທີ່ດຶງມາຈາກ ROM 8-bit ແມ່ນໄດ້ຖືກປະກອບຄືນໃໝ່ໃນ
ຄຳສັ່ງ little-endian byte ໂດຍບໍ່ຄຳນຶງເຖິງຄຳສັ່ງ CPU byte.
ອີງຕາມຮູບແບບການຂຽນໂປລແກລມ, ຄວາມສິ້ນສຸດຂອງ ROM ອາດຈະ
ຈໍາເປັນຕ້ອງໄດ້ຮັບການແກ້ໄຂ.
ພິຈາລະນາໄຟລ໌ງ່າຍດາຍທີ່ມີພາກສ່ວນທີ່ມີດັ່ງຕໍ່ໄປນີ້
ແປດ bytes: 12345678.
ການນໍາໃຊ້ --reverse-bytes=2 ສໍາລັບຕົວຢ່າງຂ້າງເທິງ, bytes ໃນ
ໄຟລ໌ຜົນຜະລິດຈະຖືກສັ່ງ 21436587.
ການນໍາໃຊ້ --reverse-bytes=4 ສໍາລັບຕົວຢ່າງຂ້າງເທິງ, bytes ໃນ
ໄຟລ໌ຜົນຜະລິດຈະຖືກສັ່ງ 43218765.
ໂດຍການນໍາໃຊ້ --reverse-bytes=2 ສໍາລັບຕົວຢ່າງຂ້າງເທິງ, ປະຕິບັດຕາມ
--reverse-bytes=4 ໃນໄຟລ໌ຜົນຜະລິດ, bytes ໃນທີສອງ
ໄຟລ໌ຜົນຜະລິດຈະຖືກສັ່ງ 34127856.
--srec-len=ງາວ
ມີຄວາມຫມາຍພຽງແຕ່ສໍາລັບຜົນຜະລິດ srec. ກໍານົດຄວາມຍາວສູງສຸດຂອງ
ບັນທຶກທີ່ໄດ້ຖືກຜະລິດເພື່ອ ງາວ. ຄວາມຍາວນີ້ກວມເອົາທັງສອງທີ່ຢູ່,
ຊ່ອງຂໍ້ມູນ ແລະ crc.
--srec-forceS3
ມີຄວາມຫມາຍພຽງແຕ່ສໍາລັບຜົນຜະລິດ srec. ຫຼີກເວັ້ນການຜະລິດ S1/S2
ການບັນທຶກ, ການສ້າງຮູບແບບການບັນທຶກ S3 ເທົ່ານັ້ນ.
--reefine-sym ອາຍຸ=ໃຫມ່
ປ່ຽນຊື່ຂອງສັນຍາລັກ ອາຍຸ, ການ ໃຫມ່. ນີ້ສາມາດເປັນປະໂຫຍດໃນເວລາທີ່
ຫນຶ່ງກໍາລັງພະຍາຍາມເຊື່ອມຕໍ່ສອງສິ່ງຮ່ວມກັນສໍາລັບການທີ່ທ່ານບໍ່ມີ
ແຫຼ່ງ, ແລະມີການປະທະກັນຊື່.
--redefine-syms=ຊື່ເອກະສານ
ສະຫມັກຂໍເອົາ --reefine-sym ແຕ່ລະຄູ່ສັນຍາລັກ "ອາຍຸ ໃຫມ່" ລະບຸໄວ້ໃນ
ເອກະສານ ຊື່ເອກະສານ. ຊື່ເອກະສານ ແມ່ນພຽງແຕ່ໄຟລ໌ແປ, ມີສັນຍາລັກຫນຶ່ງ
ຄູ່ຕໍ່ແຖວ. ຄວາມຄິດເຫັນໃນແຖວອາດຈະຖືກນໍາສະເຫນີໂດຍ hash
ລັກສະນະ. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
-- ອ່ອນເພຍ
ປ່ຽນສັນຍາລັກທົ່ວໂລກທັງໝົດໃນໄຟລ໌ໃຫ້ອ່ອນແອ. ນີ້ສາມາດເປັນ
ເປັນປະໂຫຍດໃນເວລາທີ່ການກໍ່ສ້າງວັດຖຸທີ່ຈະເຊື່ອມຕໍ່ກັບອື່ນໆ
ວັດຖຸທີ່ໃຊ້ -R ທາງເລືອກໃນການເຊື່ອມຕໍ່. ທາງເລືອກນີ້ເທົ່ານັ້ນ
ມີປະສິດທິພາບເມື່ອໃຊ້ຮູບແບບໄຟລ໌ວັດຖຸທີ່ຮອງຮັບການອ່ອນແອ
ສັນຍາລັກ.
--keep-symbols=ຊື່ເອກະສານ
ສະຫມັກຂໍເອົາ --keep-ສັນຍາລັກ ທາງເລືອກແຕ່ລະສັນຍາລັກທີ່ລະບຸໄວ້ໃນໄຟລ໌
ຊື່ເອກະສານ. ຊື່ເອກະສານ ແມ່ນພຽງແຕ່ໄຟລ໌ຮາບພຽງ, ທີ່ມີຊື່ສັນຍາລັກຫນຶ່ງຕໍ່
ສາຍ. ຄຳເຫັນແຖວອາດຈະຖືກແນະນຳໂດຍຕົວອັກສອນ hash. ນີ້
ທາງເລືອກອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--strip-symbols=ຊື່ເອກະສານ
ສະຫມັກຂໍເອົາ --Strip-ສັນຍາລັກ ທາງເລືອກແຕ່ລະສັນຍາລັກທີ່ລະບຸໄວ້ໃນໄຟລ໌
ຊື່ເອກະສານ. ຊື່ເອກະສານ ແມ່ນພຽງແຕ່ໄຟລ໌ຮາບພຽງ, ທີ່ມີຊື່ສັນຍາລັກຫນຶ່ງຕໍ່
ສາຍ. ຄຳເຫັນແຖວອາດຈະຖືກແນະນຳໂດຍຕົວອັກສອນ hash. ນີ້
ທາງເລືອກອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--strip-unneeded-symbols=ຊື່ເອກະສານ
ສະຫມັກຂໍເອົາ --strip-unneeded-ສັນຍາລັກ ທາງເລືອກແຕ່ລະສັນຍາລັກທີ່ລະບຸໄວ້ໃນ
ເອກະສານ ຊື່ເອກະສານ. ຊື່ເອກະສານ ແມ່ນພຽງແຕ່ໄຟລ໌ແປ, ມີສັນຍາລັກຫນຶ່ງ
ຊື່ຕໍ່ແຖວ. ຄວາມຄິດເຫັນໃນແຖວອາດຈະຖືກນໍາສະເຫນີໂດຍ hash
ລັກສະນະ. ທາງເລືອກນີ້ອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--keep-global-symbols=ຊື່ເອກະສານ
ສະຫມັກຂໍເອົາ --keep-global-ສັນຍາລັກ ທາງເລືອກແຕ່ລະສັນຍາລັກທີ່ລະບຸໄວ້ໃນໄຟລ໌
ຊື່ເອກະສານ. ຊື່ເອກະສານ ແມ່ນພຽງແຕ່ໄຟລ໌ຮາບພຽງ, ທີ່ມີຊື່ສັນຍາລັກຫນຶ່ງຕໍ່
ສາຍ. ຄຳເຫັນແຖວອາດຈະຖືກແນະນຳໂດຍຕົວອັກສອນ hash. ນີ້
ທາງເລືອກອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--localize-symbols=ຊື່ເອກະສານ
ສະຫມັກຂໍເອົາ --localize-ສັນຍາລັກ ທາງເລືອກແຕ່ລະສັນຍາລັກທີ່ລະບຸໄວ້ໃນໄຟລ໌
ຊື່ເອກະສານ. ຊື່ເອກະສານ ແມ່ນພຽງແຕ່ໄຟລ໌ຮາບພຽງ, ທີ່ມີຊື່ສັນຍາລັກຫນຶ່ງຕໍ່
ສາຍ. ຄຳເຫັນແຖວອາດຈະຖືກແນະນຳໂດຍຕົວອັກສອນ hash. ນີ້
ທາງເລືອກອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--globalize-symbols=ຊື່ເອກະສານ
ສະຫມັກຂໍເອົາ --globalize-ສັນຍາລັກ ທາງເລືອກແຕ່ລະສັນຍາລັກທີ່ລະບຸໄວ້ໃນໄຟລ໌
ຊື່ເອກະສານ. ຊື່ເອກະສານ ແມ່ນພຽງແຕ່ໄຟລ໌ຮາບພຽງ, ທີ່ມີຊື່ສັນຍາລັກຫນຶ່ງຕໍ່
ສາຍ. ຄຳເຫັນແຖວອາດຈະຖືກແນະນຳໂດຍຕົວອັກສອນ hash. ນີ້
ທາງເລືອກອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--weaken-symbols=ຊື່ເອກະສານ
ສະຫມັກຂໍເອົາ --weaken-ສັນຍາລັກ ທາງເລືອກແຕ່ລະສັນຍາລັກທີ່ລະບຸໄວ້ໃນໄຟລ໌
ຊື່ເອກະສານ. ຊື່ເອກະສານ ແມ່ນພຽງແຕ່ໄຟລ໌ຮາບພຽງ, ທີ່ມີຊື່ສັນຍາລັກຫນຶ່ງຕໍ່
ສາຍ. ຄຳເຫັນແຖວອາດຈະຖືກແນະນຳໂດຍຕົວອັກສອນ hash. ນີ້
ທາງເລືອກອາດຈະໄດ້ຮັບຫຼາຍກວ່າຫນຶ່ງຄັ້ງ.
--alt-machine-code=ດັດຊະນີ
ຖ້າສະຖາປັດຕະຍະ ກຳ ຜົນຜະລິດມີລະຫັດເຄື່ອງສະຫຼັບ, ໃຫ້ໃຊ້
ດັດຊະນີth code ແທນທີ່ຈະເປັນຄ່າເລີ່ມຕົ້ນ. ອັນນີ້ເປັນປະໂຫຍດໃນກໍລະນີທີ່ ກ
ເຄື່ອງໄດ້ຖືກມອບຫມາຍເປັນລະຫັດຢ່າງເປັນທາງການແລະລະບົບຕ່ອງໂສ້ເຄື່ອງມືຮັບຮອງເອົາ
ລະຫັດໃຫມ່, ແຕ່ຄໍາຮ້ອງສະຫມັກອື່ນໆຍັງຂຶ້ນກັບລະຫັດຕົ້ນສະບັບ
ຖືກນໍາໃຊ້. ສໍາລັບສະຖາປັດຕະຍະກໍາທີ່ອີງໃສ່ ELF ຖ້າ ດັດຊະນີ ທາງເລືອກ
ບໍ່ມີຢູ່ແລ້ວ, ມູນຄ່າແມ່ນຖືວ່າເປັນຕົວເລກຢ່າງແທ້ຈິງ
ຈະຖືກເກັບໄວ້ໃນພາກສະຫນາມ e_machine ຂອງ header 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 ເຂົ້າໄປໃນພາກ.
ຖ້າໄຟລ໌ຂໍ້ມູນດີບັກຖືກສ້າງຢູ່ໃນສະຖານທີ່ດຽວແຕ່ມັນຈະໄປ
ໄດ້ຮັບການຕິດຕັ້ງໃນເວລາຕໍ່ມາໃນສະຖານທີ່ທີ່ແຕກຕ່າງກັນຫຼັງຈາກນັ້ນບໍ່
ໃຊ້ເສັ້ນທາງໄປຫາສະຖານທີ່ຕິດຕັ້ງ. ໄດ້ --add-gnu-debuglink
ທາງເລືອກຈະລົ້ມເຫລວເພາະວ່າໄຟລ໌ທີ່ຕິດຕັ້ງບໍ່ມີຢູ່.
ເອົາໄຟລ໌ຂໍ້ມູນດີບັກໃສ່ໃນໄດເລກະທໍລີປະຈຸບັນ ແລະໃຊ້ແທນ
ໄດ້ --add-gnu-debuglink ທາງເລືອກທີ່ບໍ່ມີອົງປະກອບລະບົບໃດຫນຶ່ງ,
ເຊັ່ນນີ້:
objcopy --add-gnu-debuglink=foo.debug
ໃນເວລາທີ່ດີບັກ, debugger ຈະພະຍາຍາມຊອກຫາແຍກຕ່າງຫາກ
ໄຟລ໌ຂໍ້ມູນດີບັກຢູ່ໃນຊຸດຂອງສະຖານທີ່ທີ່ຮູ້ຈັກ. ຊຸດທີ່ແນ່ນອນຂອງ
ສະຖານທີ່ເຫຼົ່ານີ້ແຕກຕ່າງກັນໄປຕາມການແຈກຢາຍທີ່ຖືກນໍາໃຊ້,
ແຕ່ໂດຍທົ່ວໄປແລ້ວມັນປະກອບມີ:
"* ໄດເລກະທໍລີດຽວກັນກັບຕົວປະຕິບັດ."
"* ບັນຊີຍ່ອຍຂອງໄດເລກະທໍລີທີ່ປະກອບດ້ວຍການດໍາເນີນການໄດ້"
ເອີ້ນວ່າ .debug
"* ໄດເຣັກທໍຣີການດີບັກທົ່ວໂລກເຊັ່ນ /usr/lib/debug."
ຕາບໃດທີ່ໄຟລ໌ຂໍ້ມູນ debug ໄດ້ຖືກຕິດຕັ້ງເຂົ້າໄປໃນຫນຶ່ງໃນສິ່ງເຫຼົ່ານີ້
ສະຖານທີ່ກ່ອນທີ່ debugger ຈະຖືກດໍາເນີນການ ທຸກສິ່ງທຸກຢ່າງຄວນຈະເຮັດວຽກ
ຢ່າງຖືກຕ້ອງ.
--keep-file-ສັນຍາລັກ
ໃນເວລາທີ່ລອກເອົາໄຟລ໌, ບາງທີອາດມີ --strip-debug or
--strip-ບໍ່ຈໍາເປັນ, ຮັກສາສັນຍາລັກໃດໆທີ່ລະບຸຊື່ໄຟລ໌ແຫຼ່ງ,
ຊຶ່ງຖ້າບໍ່ດັ່ງນັ້ນຈະຖືກຖອດອອກ.
--only-keep-debug
ຖອດໄຟລ໌ອອກ, ເອົາເນື້ອໃນຂອງພາກສ່ວນຕ່າງໆທີ່ຈະບໍ່ເປັນ
ຖອດອອກໂດຍ --strip-debug ແລະອອກຈາກພາກສ່ວນ debugging
intact. ໃນໄຟລ໌ ELF, ນີ້ຈະຮັກສາພາກສ່ວນບັນທຶກທັງໝົດໃນ
ຜົນຜະລິດ.
ຫມາຍເຫດ - ສ່ວນຫົວຂອງພາກສ່ວນທີ່ຖືກຖອດອອກໄດ້ຖືກຮັກສາໄວ້,
ລວມທັງຂະຫນາດຂອງເຂົາເຈົ້າ, ແຕ່ເນື້ອໃນຂອງພາກແມ່ນ
ຍົກເລີກ. ສ່ວນຫົວພາກສ່ວນຖືກຮັກສາໄວ້ເພື່ອໃຫ້ເຄື່ອງມືອື່ນໆ
ສາມາດຈັບຄູ່ໄຟລ໌ debuginfo ກັບການປະຕິບັດຕົວຈິງ, ເຖິງແມ່ນວ່າ
ທີ່ສາມາດປະຕິບັດໄດ້ໄດ້ຖືກຍົກຍ້າຍໄປຫາພື້ນທີ່ທີ່ຢູ່ຕ່າງກັນ.
ຄວາມຕັ້ງໃຈແມ່ນວ່າທາງເລືອກນີ້ຈະຖືກນໍາມາໃຊ້ຮ່ວມກັນກັບ
--add-gnu-debuglink ເພື່ອສ້າງສອງສ່ວນທີ່ສາມາດປະຕິບັດໄດ້. ໜຶ່ງ ກ
stripped binary ເຊິ່ງຈະຄອບຄອງພື້ນທີ່ຫນ້ອຍໃນ RAM ແລະໃນ a
ການແຈກຢາຍແລະອັນທີສອງແມ່ນໄຟລ໌ຂໍ້ມູນການແກ້ບັນຫາທີ່ເປັນ
ຕ້ອງການພຽງແຕ່ຖ້າຄວາມສາມາດ debugging ແມ່ນຕ້ອງການ. ແນະນໍາ
ຂັ້ນຕອນການສ້າງໄຟລ໌ເຫຼົ່ານີ້ແມ່ນດັ່ງຕໍ່ໄປນີ້:
1.
"foo" ແລ້ວ ...
1.
ສ້າງໄຟລ໌ທີ່ມີຂໍ້ມູນການດີບັກ.
1.
ຖອດອອກໄດ້.
1.
ເພື່ອເພີ່ມການເຊື່ອມຕໍ່ກັບຂໍ້ມູນການດີບັກເຂົ້າໄປໃນການຖອດອອກ
ປະຕິບັດໄດ້.
ຫມາຍເຫດ --- ທາງເລືອກຂອງ ".dbg" ເປັນສ່ວນຂະຫຍາຍສໍາລັບໄຟລ໌ຂໍ້ມູນດີບັກ
ແມ່ນ arbitrary. ນອກຈາກນັ້ນ, ຂັ້ນຕອນ "--only-keep-debug" ແມ່ນທາງເລືອກ. ເຈົ້າ
ແທນທີ່ຈະສາມາດເຮັດໄດ້:
1.
1.
1.
1.
ie, ໄຟລ໌ຊີ້ໃຫ້ເຫັນໂດຍ --add-gnu-debuglink ສາມາດເປັນ
ການປະຕິບັດຢ່າງເຕັມທີ່. ມັນບໍ່ຈໍາເປັນຕ້ອງເປັນໄຟລ໌ທີ່ສ້າງຂຶ້ນໂດຍ
--only-keep-debug ສະຫຼັບ.
ໝາຍເຫດ--- ສະວິດນີ້ມີຈຸດປະສົງເພື່ອໃຊ້ໃນໄຟລ໌ທີ່ເຊື່ອມໂຍງຢ່າງຄົບຖ້ວນເທົ່ານັ້ນ.
ມັນບໍ່ມີຄວາມຫມາຍທີ່ຈະໃຊ້ມັນຢູ່ໃນໄຟລ໌ວັດຖຸບ່ອນທີ່
ຂໍ້ມູນການດີບັກອາດບໍ່ຄົບຖ້ວນ. ນອກຈາກ gnu_debuglink
ຄຸນສົມບັດໃນປັດຈຸບັນຮອງຮັບພຽງແຕ່ການມີຊື່ໄຟລ໌ດຽວເທົ່ານັ້ນ
ປະກອບມີຂໍ້ມູນການດີບັກ, ບໍ່ແມ່ນຊື່ໄຟລ໌ຫຼາຍອັນຢູ່ໃນອັນດຽວ.
ພື້ນຖານຕໍ່ວັດຖຸ-ໄຟລ໌.
--strip-dwo
ເອົາເນື້ອໃນຂອງພາກສ່ວນ DWARF .dwo ທັງຫມົດ, ອອກຈາກ
ພາກສ່ວນ debugging ທີ່ຍັງເຫຼືອແລະສັນຍາລັກທັງຫມົດ intact. ທາງເລືອກນີ້
ມີຈຸດປະສົງສໍາລັບການນໍາໃຊ້ໂດຍ compiler ເປັນສ່ວນຫນຶ່ງຂອງ -gsplit-dwarf
ທາງເລືອກ, ເຊິ່ງແບ່ງປັນຂໍ້ມູນດີບັກລະຫວ່າງໄຟລ໌ .o ແລະ a
ໄຟລ໌ .dwo ແຍກຕ່າງຫາກ. compiler ສ້າງຂໍ້ມູນດີບັກທັງໝົດ
ໃນໄຟລ໌ດຽວກັນ, ຫຼັງຈາກນັ້ນໃຊ້ --extract-dwo ທາງເລືອກທີ່ຈະສໍາເນົາເອົາ
ພາກສ່ວນ .dwo ໄປຫາໄຟລ໌ .dwo, ຈາກນັ້ນ --strip-dwo ທາງເລືອກທີ່ຈະ
ເອົາພາກສ່ວນເຫຼົ່ານັ້ນອອກຈາກໄຟລ໌ .o ຕົ້ນສະບັບ.
--extract-dwo
ສະກັດເນື້ອໃນຂອງພາກສ່ວນ DWARF .dwo ທັງໝົດ. ເບິ່ງ
--strip-dwo ທາງເລືອກສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.
--ການຈັດຮຽງໄຟລ໌ num
ລະບຸການຈັດຮຽງໄຟລ໌. ພາກສ່ວນຕ່າງໆໃນໄຟລ໌ຈະເລີ່ມຕົ້ນສະເໝີ
ຢູ່ທີ່ການຊົດເຊີຍໄຟລ໌ທີ່ເປັນຕົວຄູນຂອງຕົວເລກນີ້. ນີ້ເປັນຄ່າເລີ່ມຕົ້ນ
ເຖິງ 512. [ຕົວເລືອກນີ້ແມ່ນສະເພາະກັບເປົ້າໝາຍ PE.]
--heap reserve
--heap reserve,ຄໍາຫມັ້ນສັນຍາ
ລະບຸຈໍານວນຂອງ bytes ຂອງຫນ່ວຍຄວາມຈໍາທີ່ຈະສະຫງວນ (ແລະທາງເລືອກ
commit) ເພື່ອຖືກນໍາໃຊ້ເປັນ heap ສໍາລັບໂຄງການນີ້. [ທາງເລືອກນີ້ແມ່ນ
ສະເພາະເປົ້າໝາຍ PE.]
--ຮູບ-ຖານ ມູນຄ່າ
ການນໍາໃຊ້ ມູນຄ່າ ເປັນທີ່ຢູ່ພື້ນຖານຂອງໂຄງການຫຼື dll ຂອງທ່ານ. ນີ້ແມ່ນ
ສະຖານທີ່ຫນ່ວຍຄວາມຈໍາຕ່ໍາສຸດທີ່ຈະຖືກນໍາໃຊ້ໃນເວລາທີ່ໂຄງການຫຼື dll ຂອງທ່ານ
ຖືກໂຫລດ. ເພື່ອຫຼຸດຜ່ອນຄວາມຕ້ອງການຍົກຍ້າຍແລະປັບປຸງການປະຕິບັດ
ຂອງ dlls ຂອງທ່ານ, ແຕ່ລະຄົນຄວນມີທີ່ຢູ່ພື້ນຖານທີ່ເປັນເອກະລັກແລະບໍ່ແມ່ນ
ທັບຊ້ອນ dlls ອື່ນໆ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 0x400000 ສໍາລັບການປະຕິບັດການ,
ແລະ 0x10000000 ສໍາລັບ dlls. [ຕົວເລືອກນີ້ແມ່ນສະເພາະກັບເປົ້າໝາຍ PE.]
--section-alignment num
ກໍານົດການຈັດລໍາດັບພາກສ່ວນ. ພາກສ່ວນຕ່າງໆໃນຄວາມຊົງຈຳຈະເລີ່ມຕົ້ນສະເໝີ
ຢູ່ທີ່ຢູ່ທີ່ເປັນຕົວຄູນຂອງຕົວເລກນີ້. ຄ່າເລີ່ມຕົ້ນເປັນ
0x1000. [ຕົວເລືອກນີ້ແມ່ນສະເພາະກັບເປົ້າໝາຍ PE.]
-- stack reserve
-- stack reserve,ຄໍາຫມັ້ນສັນຍາ
ລະບຸຈໍານວນຂອງ bytes ຂອງຫນ່ວຍຄວາມຈໍາທີ່ຈະສະຫງວນ (ແລະທາງເລືອກ
commit) ເພື່ອຖືກນໍາໃຊ້ເປັນ 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 ເທົ່າກັບ
--compress-debug-sections. --compress-debug-sections=zlib-gnu
ບີບອັດພາກສ່ວນດີບັກ DWARF ໂດຍໃຊ້ zlib. ພາກສ່ວນ debug ແມ່ນ
ປ່ຽນຊື່ເລີ່ມຕົ້ນດ້ວຍ .zdebug ແທນທີ່ .ດີບັກ. ຫມາຍເຫດ - ຖ້າ
ການບີບອັດຕົວຈິງຈະເຮັດໃຫ້ພາກສ່ວນ ຂະຫນາດໃຫຍ່, ຫຼັງຈາກນັ້ນມັນບໍ່ແມ່ນ
ຖືກບີບອັດ ຫຼືປ່ຽນຊື່.
--decompress-debug-sections
ບີບອັດພາກສ່ວນດີບັກ DWARF ໂດຍໃຊ້ zlib. ພາກສ່ວນຕົ້ນສະບັບ
ຊື່ຂອງພາກສ່ວນທີ່ຖືກບີບອັດຖືກຟື້ນຟູ.
-V
- ການປ່ຽນແປງ
ສະແດງເລກເວີຊັ່ນຂອງ ສຳເນົາ.
-v
-- verbose
Verbose output: ບອກໄຟລ໌ວັດຖຸທັງໝົດທີ່ຖືກດັດແກ້. ໃນກໍລະນີຂອງ
ຮວບຮວມ, ສຳເນົາ -V ລາຍຊື່ສະມາຊິກທັງໝົດຂອງແຟ້ມຈັດເກັບ.
- ຊ່ວຍ
ສະແດງບົດສະຫຼຸບຂອງທາງເລືອກໃນການ ສຳເນົາ.
-- ຂໍ້ມູນ
ສະແດງລາຍການສະແດງສະຖາປັດຕະຍະກໍາ ແລະຮູບແບບວັດຖຸທັງໝົດ
ທີ່ມີຢູ່.
@ເອກະສານ
ອ່ານຕົວເລືອກແຖວຄໍາສັ່ງຈາກ ເອກະສານ. ຕົວເລືອກທີ່ອ່ານຖືກໃສ່
ແທນທີ່ @ ຕົ້ນສະບັບເອກະສານ ທາງເລືອກ. ຖ້າ ເອກະສານ ບໍ່ມີ, ຫຼື
ບໍ່ສາມາດອ່ານໄດ້, ຫຼັງຈາກນັ້ນທາງເລືອກຈະຖືກປະຕິບັດຢ່າງຈິງຈັງ, ແລະບໍ່ແມ່ນ
ລົບອອກ.
ຕົວເລືອກຕ່າງໆໃນ ເອກະສານ ຖືກແຍກອອກໂດຍຊ່ອງຫວ່າງ. ຊ່ອງຫວ່າງ
ລັກສະນະອາດຈະຖືກລວມຢູ່ໃນທາງເລືອກໂດຍອ້ອມຂ້າງທັງຫມົດ
ທາງເລືອກໃນວົງຢືມດຽວຫຼືຄູ່. ຕົວລະຄອນໃດນຶ່ງ (ລວມທັງ
backslash) ອາດຈະຖືກລວມເຂົ້າໂດຍການນໍາຫນ້າຕົວອັກສອນທີ່ຈະເປັນ
ລວມໄປດ້ວຍ backslash. ໄດ້ ເອກະສານ ຕົວຂອງມັນເອງອາດຈະມີເພີ່ມເຕີມ
@ເອກະສານ ທາງເລືອກ; ຕົວເລືອກດັ່ງກ່າວຈະຖືກປະມວນຜົນແບບ recursively.
ໃຊ້ i686-linux-gnu-objcopy ອອນໄລນ໌ໂດຍໃຊ້ການບໍລິການ onworks.net