ພາສາອັງກິດພາສາຝຣັ່ງແອສປາໂຍນ

Ad


OnWorks favicon

h8300-hms-ld - ອອນລາຍໃນຄລາວ

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

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

ໂຄງການ:

NAME


ld - ການນໍາໃຊ້ LD, ຕົວເຊື່ອມຕໍ່ GNU

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


ld [ທາງເລືອກໃນການ] objfile ...

ລາຍລະອຽດ


ld ລວມວັດຖຸແລະແຟ້ມເອກະສານຈໍານວນຫນຶ່ງ, ຍ້າຍຂໍ້ມູນຂອງພວກເຂົາແລະເຊື່ອມຕໍ່ສັນຍາລັກ
ອ້າງອີງ. ປົກກະຕິແລ້ວຂັ້ນຕອນສຸດທ້າຍໃນການລວບລວມໂຄງການແມ່ນເພື່ອດໍາເນີນການ ld.

ld ຍອມຮັບໄຟລ໌ Linker Command Language ທີ່ຂຽນໄວ້ໃນ superset ຂອງ AT&T's Link Editor
syntax ພາ​ສາ​ຄໍາ​ສັ່ງ​, ເພື່ອ​ສະ​ຫນອງ​ການ​ຄວບ​ຄຸມ​ຢ່າງ​ຊັດ​ເຈນ​ແລະ​ທັງ​ຫມົດ​ໃນ​ຂະ​ບວນ​ການ​ເຊື່ອມ​ຕໍ່​.

ຫນ້າຜູ້ຊາຍນີ້ບໍ່ໄດ້ອະທິບາຍພາສາຄໍາສັ່ງ; ເບິ່ງ ld ເຂົ້າໃນ "ຂໍ້ມູນ", ຫຼື
ຄູ່ມື ld: ຕົວເຊື່ອມຕໍ່ GNU, ສໍາລັບລາຍລະອຽດເຕັມກ່ຽວກັບພາສາຄໍາສັ່ງແລະດ້ານອື່ນໆ
ຂອງຕົວເຊື່ອມຕໍ່ GNU.

ສະບັບພາສາຂອງໂຄງການນີ້ ld ໃຊ້ຫ້ອງສະຫມຸດ BFD ຈຸດປະສົງທົ່ວໄປເພື່ອດໍາເນີນການກ່ຽວກັບໄຟລ໌ວັດຖຸ. ນີ້
ອະນຸຍາດໃຫ້ ld ເພື່ອອ່ານ, ສົມທົບ, ແລະຂຽນໄຟລ໌ວັດຖຸໃນຫຼາຍຮູບແບບທີ່ແຕກຕ່າງກັນ --- ສໍາລັບ
ຕົວຢ່າງ, COFF ຫຼື "a.out". ຮູບແບບທີ່ແຕກຕ່າງກັນອາດຈະຖືກເຊື່ອມຕໍ່ກັນເພື່ອຜະລິດໃດໆ
ປະເພດໄຟລ໌ວັດຖຸທີ່ມີຢູ່.

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

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

OPTIONS


ຕົວເຊື່ອມຕໍ່ສະຫນັບສະຫນູນທາງເລືອກເສັ້ນຄໍາສັ່ງຫຼາຍ, ແຕ່ໃນການປະຕິບັດຕົວຈິງຈໍານວນຫນ້ອຍຂອງພວກເຂົາ
ຖືກນໍາໃຊ້ໃນສະພາບການສະເພາະໃດຫນຶ່ງ. ສໍາລັບຕົວຢ່າງ, ການນໍາໃຊ້ເລື້ອຍໆ ld ແມ່ນເພື່ອເຊື່ອມຕໍ່
ໄຟລ໌ວັດຖຸມາດຕະຖານ Unix ຢູ່ໃນລະບົບມາດຕະຖານ Unix ທີ່ຮອງຮັບ. ກ່ຽວກັບລະບົບດັ່ງກ່າວ, ເພື່ອ
ເຊື່ອມຕໍ່ໄຟລ໌ "hello.o":

ld -o /lib/crt0.o hello.o -lc

ສິ່ງນີ້ບອກ ld ເພື່ອຜະລິດໄຟລ໌ທີ່ເອີ້ນວ່າ output ເປັນຜົນມາຈາກການເຊື່ອມໂຍງໄຟລ໌
"/lib/crt0.o" ກັບ "hello.o" ແລະຫ້ອງສະຫມຸດ "libc.a", ເຊິ່ງຈະມາຈາກມາດຕະຖານ.
ໄດເລກະທໍລີຄົ້ນຫາ. (ເບິ່ງ​ການ​ສົນ​ທະ​ນາ​ຂອງ​ -l ທາງ​ເລືອກ​ຂ້າງ​ລຸ່ມ​ນີ້​.)

ບາງທາງເລືອກຂອງເສັ້ນຄໍາສັ່ງທີ່ຈະ ld ອາດຈະຖືກລະບຸໄວ້ໃນຈຸດໃດນຶ່ງໃນແຖວຄຳສັ່ງ.
ຢ່າງໃດກໍຕາມ, ທາງເລືອກທີ່ຫມາຍເຖິງໄຟລ໌, ເຊັ່ນ: -l or -T, ເຮັດໃຫ້ໄຟລ໌ຖືກອ່ານຢູ່ທີ່
ຈຸດທີ່ຕົວເລືອກປາກົດຢູ່ໃນເສັ້ນຄໍາສັ່ງ, ກ່ຽວຂ້ອງກັບໄຟລ໌ວັດຖຸແລະ
ທາງ​ເລືອກ​ໄຟລ​໌​ອື່ນໆ​. ການຊໍ້າຄືນທາງເລືອກທີ່ບໍ່ແມ່ນໄຟລ໌ທີ່ມີການໂຕ້ຖຽງທີ່ແຕກຕ່າງກັນຈະມີ
ບໍ່ມີຜົນກະທົບເພີ່ມເຕີມ, ຫຼື override ການປະກົດຕົວກ່ອນຫນ້າ (ຜູ້ທີ່ເພີ່ມເຕີມໄປທາງຊ້າຍໃນຄໍາສັ່ງ
line) ຂອງທາງເລືອກນັ້ນ. ທາງ​ເລືອກ​ທີ່​ອາດ​ຈະ​ໄດ້​ຮັບ​ການ​ລະ​ບຸ​ຄວາມ​ຫມາຍ​ຫຼາຍ​ກ​່​ວາ​ຫນຶ່ງ​ຄັ້ງ​ແມ່ນ​
ບັນທຶກໄວ້ໃນຄໍາອະທິບາຍຂ້າງລຸ່ມນີ້.

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

ໂດຍປົກກະຕິແລ້ວຕົວເຊື່ອມຕໍ່ຈະຖືກເອີ້ນດ້ວຍໄຟລ໌ວັດຖຸຢ່າງໜ້ອຍໜຶ່ງໄຟລ໌, ແຕ່ທ່ານສາມາດລະບຸອັນອື່ນໄດ້
ຮູບ​ແບບ​ຂອງ​ໄຟລ​໌​ປ້ອນ​ຂໍ້​ມູນ​ຄູ່​ໂດຍ​ການ​ນໍາ​ໃຊ້​ -l, -R, ແລະພາສາຄໍາສັ່ງ script. ຖ້າ no binary
ໄຟລ​໌​ທີ່​ປ້ອນ​ຂໍ້​ມູນ​ທັງ​ຫມົດ​ແມ່ນ​ໄດ້​ລະ​ບຸ​ໄວ້​, ຕົວ​ເຊື່ອມ​ຕໍ່​ບໍ່​ໄດ້​ຜະ​ລິດ​ຜົນ​ຜະ​ລິດ​ໃດ​ຫນຶ່ງ​, ແລະ​ບັນ​ຫາ​
ຂໍ້ຄວາມ No ການປ້ອນຂໍ້ມູນ ໄຟ.

ຖ້າຕົວເຊື່ອມຕໍ່ບໍ່ສາມາດຮັບຮູ້ຮູບແບບຂອງໄຟລ໌ວັດຖຸ, ມັນຈະສົມມຸດວ່າມັນເປັນ a
linker script. ສະຄຣິບທີ່ລະບຸໄວ້ໃນວິທີນີ້ ຂະຫຍາຍຕົວເຊື່ອມຕໍ່ຫຼັກທີ່ໃຊ້ສຳລັບ
ການເຊື່ອມຕໍ່ (ທັງ script linker ເລີ່ມຕົ້ນຫຼືຫນຶ່ງທີ່ລະບຸໄວ້ໂດຍການໃຊ້ -T) ນີ້
ຄຸນ​ນະ​ສົມ​ບັດ​ອະ​ນຸ​ຍາດ​ໃຫ້ linker ເພື່ອ​ເຊື່ອມ​ຕໍ່​ກັບ​ໄຟລ​໌​ທີ່​ປະ​ກົດ​ວ່າ​ເປັນ​ວັດ​ຖຸ​ຫຼື​ເປັນ​
archive, ແຕ່ຕົວຈິງແລ້ວພຽງແຕ່ກໍານົດຄ່າສັນຍາລັກບາງຢ່າງ, ຫຼືໃຊ້ "INPUT" ຫຼື "GROUP" ເພື່ອ
ໂຫຼດວັດຖຸອື່ນໆ. ໃຫ້ສັງເກດວ່າການລະບຸສະຄິບດ້ວຍວິທີນີ້ພຽງແຕ່ເພີ່ມສ່ວນຫຼັກເທົ່ານັ້ນ
linker script; ໃຊ້ -T ທາງ​ເລືອກ​ທີ່​ຈະ​ປ່ຽນ​ແທນ​ສະ​ຄຣິ​ບ​ຕົວ​ເຊື່ອມ​ຕໍ່​ໃນ​ຕອນ​ຕົ້ນ​ທັງ​ຫມົດ​.

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

ສໍາລັບຕົວເລືອກທີ່ມີຊື່ຫຼາຍຕົວໜັງສື, ນຶ່ງຂີດ ຫຼືສອງໂຕສາມາດນຳໜ້າໄດ້
ຊື່ທາງເລືອກ; ຍົກ​ຕົວ​ຢ່າງ, -trace-ສັນ​ຍາ​ລັກ​ ແລະ --trace-ສັນຍາລັກ ທຽບເທົ່າ. ຫມາຍເຫດ --- ຢູ່ທີ່ນັ້ນ
ແມ່ນຂໍ້ຍົກເວັ້ນອັນໜຶ່ງຕໍ່ກັບກົດລະບຽບນີ້. ໂຕເລືອກຕົວອັກສອນຫຼາຍອັນທີ່ເລີ່ມຕົ້ນດ້ວຍຕົວພິມນ້ອຍ 'o'
ສາມາດນຳໜ້າໄດ້ພຽງສອງຂີດ. ນີ້ແມ່ນເພື່ອຫຼຸດຜ່ອນຄວາມສັບສົນກັບ -o ທາງເລືອກ. ດັ່ງນັ້ນ
ຍົກ​ຕົວ​ຢ່າງ - ມະຫັດສະຈັນ ຕັ້ງຊື່ໄຟລ໌ຜົນຜະລິດເປັນ magic ໃນຂະນະທີ່ --ມະຫັດສະຈັນ ກໍານົດ NMAGIC
ທຸງຢູ່ໃນຜົນຜະລິດ.

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

ຫມາຍເຫດ --- ຖ້າຕົວເຊື່ອມຕໍ່ຈະຖືກເອີ້ນໂດຍທາງອ້ອມ, ຜ່ານໄດເວີລວບລວມ (ຕົວຢ່າງ gcc) ແລ້ວ
ຕົວເລືອກເສັ້ນຄໍາສັ່ງ linker ທັງຫມົດຄວນຈະຖືກນໍາຫນ້າໂດຍ -Wl, (ຫຼືໃດກໍ່ຕາມທີ່ເຫມາະສົມ
ສໍາ​ລັບ​ການ​ຂັບ compiler ໂດຍ​ສະ​ເພາະ​) ເຊັ່ນ​ນີ້​:

gcc -Wl,--startgroup foo.o bar.o -Wl,--endgroup

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

ນີ້ແມ່ນຕາຕະລາງຂອງຕົວປ່ຽນເສັ້ນຄໍາສັ່ງທົ່ວໄປທີ່ຍອມຮັບໂດຍຕົວເຊື່ອມຕໍ່ GNU:

-aຄໍາ
ທາງເລືອກນີ້ແມ່ນສະຫນັບສະຫນູນສໍາລັບການເຂົ້າກັນໄດ້ HP / UX. ໄດ້ ຄໍາ ການໂຕ້ຖຽງຕ້ອງເປັນຫນຶ່ງໃນ
ຊ່ອຍແນ່ ເກັບ, ແບ່ງປັນ, ຫຼື Default. - ຮວບຮວມ ແມ່ນຫນ້າທີ່ທຽບເທົ່າກັບ
-Bstatic, ແລະອີກສອງຄໍາທີ່ໃຊ້ໄດ້ທຽບເທົ່າກັບ -Bdynamic. ນີ້
ທາງ​ເລືອກ​ອາດ​ຈະ​ຖືກ​ນໍາ​ໃຊ້​ຈໍາ​ນວນ​ຂອງ​ເວ​ລາ​ໃດ​ຫນຶ່ງ​.

-Aຖາປັດຕະຍະ
--ສະຖາປັດຕະຍະກຳ=ຖາປັດຕະຍະ
ໃນການປ່ອຍປະຈຸບັນຂອງ ld, ທາງເລືອກນີ້ແມ່ນເປັນປະໂຫຍດພຽງແຕ່ສໍາລັບຄອບຄົວ Intel 960 ຂອງ
ສະຖາປັດຕະຍະກໍາ. ໃນ​ນັ້ນ ld ການຕັ້ງຄ່າ, ໄດ້ ຖາປັດຕະຍະ ການໂຕ້ຖຽງກໍານົດການ
ສະຖາປັດຕະຍະກໍາໂດຍສະເພາະໃນຄອບຄົວ 960, ເຮັດໃຫ້ການປົກປ້ອງບາງຢ່າງແລະດັດແປງ
ເສັ້ນທາງຄົ້ນຫາ archive-library.

ການປ່ອຍໃນອະນາຄົດຂອງ ld ອາດຈະສະຫນັບສະຫນູນການເຮັດວຽກທີ່ຄ້າຍຄືກັນສໍາລັບສະຖາປັດຕະຍະກໍາອື່ນໆ
ຄອບຄົວ.

-b ຮູບ​ແບບ​ການ​ປ້ອນ​ຂໍ້​ມູນ​
--format=ຮູບ​ແບບ​ການ​ປ້ອນ​ຂໍ້​ມູນ​
ld ອາດ​ຈະ​ໄດ້​ຮັບ​ການ​ຕັ້ງ​ຄ່າ​ເພື່ອ​ສະ​ຫນັບ​ສະ​ຫນູນ​ຫຼາຍ​ກ​່​ວາ​ຫນຶ່ງ​ປະ​ເພດ​ຂອງ​ໄຟລ​໌​ວັດ​ຖຸ​. ຖ້າເຈົ້າ ld is
configured ດ້ວຍວິທີນີ້, ທ່ານສາມາດນໍາໃຊ້ -b ທາງເລືອກທີ່ຈະລະບຸຮູບແບບຖານສອງສໍາລັບການປ້ອນຂໍ້ມູນ
ໄຟລ໌ວັດຖຸທີ່ປະຕິບັດຕາມຕົວເລືອກນີ້ຢູ່ໃນເສັ້ນຄໍາສັ່ງ. ເຖິງແມ່ນວ່າເວລາ ld ຖືກ​ຕັ້ງ​ຄ່າ​
ເພື່ອສະຫນັບສະຫນູນຮູບແບບວັດຖຸທາງເລືອກ, ທ່ານບໍ່ຈໍາເປັນຕ້ອງກໍານົດນີ້, ເປັນ ld
ຄວນຈະຖືກຕັ້ງຄ່າໃຫ້ຄາດຫວັງເປັນຮູບແບບການປ້ອນຂໍ້ມູນເລີ່ມຕົ້ນເປັນຮູບແບບປົກກະຕິທີ່ສຸດໃນແຕ່ລະ
ເຄື່ອງຈັກ. ຮູບ​ແບບ​ການ​ປ້ອນ​ຂໍ້​ມູນ​ ແມ່ນສະຕຣິງຂໍ້ຄວາມ, ຊື່ຂອງຮູບແບບສະເພາະທີ່ສະຫນັບສະຫນູນໂດຍ
ຫ້ອງສະຫມຸດ BFD. (ທ່ານ​ສາ​ມາດ​ລາຍ​ຊື່​ຮູບ​ແບບ​ຄູ່​ທີ່​ມີ​ຢູ່​ກັບ​ objdump -i.)

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

ຮູບແບບເລີ່ມຕົ້ນແມ່ນເອົາມາຈາກຕົວແປສະພາບແວດລ້ອມ "GNUTARGET".

ນອກນັ້ນທ່ານຍັງສາມາດກໍານົດຮູບແບບການປ້ອນຂໍ້ມູນຈາກສະຄິບ, ໂດຍໃຊ້ຄໍາສັ່ງ "TARGET";

-c MRI-commandfile
--mri-script=MRI-commandfile
ສໍາລັບຄວາມເຂົ້າກັນໄດ້ກັບຕົວເຊື່ອມຕໍ່ທີ່ຜະລິດໂດຍ MRI, ld ຍອມຮັບໄຟລ໌ສະຄິບທີ່ຂຽນເປັນ
ພາສາຄຳສັ່ງສະລັບກັນ, ຖືກຈຳກັດ, ອະທິບາຍໄວ້ໃນ MRI Compatible Script Files
ພາກສ່ວນຂອງເອກະສານ GNU ld. ແນະນຳໄຟລ໌ສະຄຣິບ MRI ດ້ວຍທາງເລືອກ -c; ການນໍາໃຊ້
ໄດ້ -T ທາງ​ເລືອກ​ທີ່​ຈະ​ດໍາ​ເນີນ​ການ linker scripts ຂຽນ​ໃນ​ຈຸດ​ປະ​ສົງ​ທົ່ວ​ໄປ​ ld scripting
ພາສາ. ຖ້າ MRI-cmdfile ບໍ່​ມີ​, ld ຊອກຫາມັນຢູ່ໃນໄດເລກະທໍລີທີ່ລະບຸໄວ້
ໂດຍໃດໆ -L ຕົວເລືອກ

-d
-dc
-dp ສາມທາງເລືອກນີ້ແມ່ນທຽບເທົ່າ; ຫຼາຍຮູບແບບແມ່ນສະຫນັບສະຫນູນສໍາລັບການເຂົ້າກັນໄດ້
ກັບຕົວເຊື່ອມຕໍ່ອື່ນໆ. ພວກເຂົາມອບພື້ນທີ່ໃຫ້ກັບສັນຍາລັກທົ່ວໄປເຖິງແມ່ນວ່າຜົນຜະລິດທີ່ສາມາດຍ້າຍໄດ້
ໄຟລ໌ຖືກລະບຸ (ມີ -r). ຄໍາສັ່ງສະຄຣິບ "FORCE_COMMON_ALLOCATION" ມີ
ຜົນກະທົບດຽວກັນ.

-e entry
--ເຂົ້າ=entry
ການນໍາໃຊ້ entry ເປັນສັນຍາລັກທີ່ຊັດເຈນສໍາລັບການເລີ່ມຕົ້ນການປະຕິບັດໂຄງການຂອງທ່ານ, ແທນທີ່ຈະ
ຈຸດເຂົ້າເລີ່ມຕົ້ນ. ຖ້າບໍ່ມີສັນຍາລັກທີ່ມີຊື່ entry, linker ຈະພະຍາຍາມ
ແຍກ entry ເປັນຕົວເລກ, ແລະໃຊ້ເປັນທີ່ຢູ່ເຂົ້າ (ຕົວເລກຈະເປັນ
ຕີລາຄາໃນຖານ 10; ເຈົ້າອາດຈະໃຊ້ຕົວນໍາ 0x ສໍາລັບພື້ນຖານ 16, ຫຼືຊັ້ນນໍາ 0 ສໍາລັບພື້ນຖານ
8).

--exclude-libs lib,lib...
ລະບຸລາຍຊື່ຂອງຄັງເກັບມ້ຽນທີ່ສັນຍາລັກບໍ່ຄວນອັດຕະໂນມັດ
ສົ່ງອອກ. ຊື່ຫ້ອງສະໝຸດອາດຈະຖືກຈຳກັດດ້ວຍເຄື່ອງໝາຍຈຸດ ຫຼືຈໍ້າສອງເມັດ. ການລະບຸ
"--exclude-libs ALL" ບໍ່ລວມເອົາສັນຍາລັກໃນຄັງເກັບມ້ຽນທັງໝົດຈາກການສົ່ງອອກອັດຕະໂນມັດ.
ທາງເລືອກນີ້ແມ່ນມີພຽງແຕ່ສໍາລັບ i386 PE ທີ່ Port ເປົ້າຫມາຍຂອງ linker ແລະສໍາລັບ ELF
ທ່າເຮືອເປົ້າໝາຍ. ສຳລັບ i386 PE, ສັນຍາລັກທີ່ລະບຸໄວ້ຢ່າງຈະແຈ້ງໃນໄຟລ໌ .def ແມ່ນຍັງຢູ່
ສົ່ງອອກ, ໂດຍບໍ່ຄໍານຶງເຖິງທາງເລືອກນີ້. ສໍາລັບທ່າເຮືອເປົ້າຫມາຍ ELF, ສັນຍາລັກທີ່ໄດ້ຮັບຜົນກະທົບຈາກນີ້
ທາງເລືອກຈະຖືກຖືວ່າຖືກເຊື່ອງໄວ້.

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

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

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

ທ່ານຍັງສາມາດໃຊ້ສະຄິບເວີຊັນເພື່ອຄວບຄຸມສິ່ງທີ່ສັນຍາລັກຄວນຖືກເພີ່ມໃສ່
ຕາຕະລາງສັນຍາລັກແບບເຄື່ອນໄຫວຖ້າຮູບແບບຜົນຜະລິດສະຫນັບສະຫນູນມັນ. ເບິ່ງລາຍລະອຽດຂອງ
--version-script ໃນ @ref{VERSION}.

-EB ເຊື່ອມຕໍ່ວັດຖຸໃຫຍ່. ນີ້ມີຜົນກະທົບຮູບແບບຜົນຜະລິດເລີ່ມຕົ້ນ.

- THE ເຊື່ອມຕໍ່ວັດຖຸນ້ອຍ-endian. ນີ້ມີຜົນກະທົບຮູບແບບຜົນຜະລິດເລີ່ມຕົ້ນ.

-f
--ຊ່ວຍ ຊື່
ເມື່ອສ້າງວັດຖຸທີ່ໃຊ້ຮ່ວມກັນ ELF, ໃຫ້ຕັ້ງຊ່ອງຂໍ້ມູນ DT_AUXILIARY ພາຍໃນເປັນ
ຊື່ທີ່ລະບຸ. ນີ້ບອກຕົວເຊື່ອມຕໍ່ແບບເຄື່ອນໄຫວທີ່ຕາຕະລາງສັນຍາລັກຂອງການແບ່ງປັນ
ວັດຖຸຄວນຖືກໃຊ້ເປັນຕົວກອງຊ່ວຍໃນຕາຕະລາງສັນຍາລັກຂອງວັດຖຸທີ່ໃຊ້ຮ່ວມກັນ
ຊື່.

ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ຕໍ່​ມາ​ເຊື່ອມ​ຕໍ່​ໂຄງ​ການ​ກັບ​ວັດ​ຖຸ​ຕົວ​ກັ່ນ​ຕອງ​ນີ້​, ຫຼັງ​ຈາກ​ນັ້ນ​, ໃນ​ເວ​ລາ​ທີ່​ທ່ານ​ດໍາ​ເນີນ​ການ​
ໂປຣແກຣມ, ຕົວເຊື່ອມຕໍ່ແບບໄດນາມິກຈະເຫັນຊ່ອງຂໍ້ມູນ DT_AUXILIARY. ຖ້າຕົວເຊື່ອມຕໍ່ແບບເຄື່ອນໄຫວ
ແກ້ໄຂສັນຍາລັກໃດໆຈາກວັດຖຸການກັ່ນຕອງ, ມັນທໍາອິດຈະກວດເບິ່ງວ່າມີ
ຄໍານິຍາມໃນວັດຖຸທີ່ໃຊ້ຮ່ວມກັນ ຊື່. ຖ້າມີອັນໜຶ່ງ, ມັນຈະຖືກໃຊ້ແທນ
ຄໍານິຍາມໃນວັດຖຸການກັ່ນຕອງ. ວັດຖຸທີ່ໃຊ້ຮ່ວມກັນ ຊື່ ບໍ່ຈໍາເປັນຕ້ອງມີ. ດັ່ງນັ້ນຈຶ່ງ
ວັດຖຸທີ່ໃຊ້ຮ່ວມກັນ ຊື່ ອາດຈະຖືກນໍາໃຊ້ເພື່ອສະຫນອງທາງເລືອກການປະຕິບັດທີ່ແນ່ນອນ
ຟັງຊັນ, ບາງທີອາດສໍາລັບການ debugging ຫຼືສໍາລັບການປະຕິບັດສະເພາະຂອງເຄື່ອງຈັກ.

ຕົວເລືອກນີ້ອາດຈະຖືກລະບຸຫຼາຍກວ່າຫນຶ່ງຄັ້ງ. ລາຍການ DT_AUXILIARY ຈະຖືກສ້າງຂື້ນ
ໃນຄໍາສັ່ງທີ່ພວກເຂົາປາກົດຢູ່ໃນເສັ້ນຄໍາສັ່ງ.

-F ຊື່
--ການກັ່ນຕອງ ຊື່
ເມື່ອສ້າງວັດຖຸທີ່ໃຊ້ຮ່ວມກັນ ELF, ຕັ້ງຊ່ອງຂໍ້ມູນ DT_FILTER ພາຍໃນໃຫ້ເປັນທີ່ລະບຸ
ຊື່. ນີ້ບອກຕົວເຊື່ອມຕໍ່ແບບເຄື່ອນໄຫວທີ່ຕາຕະລາງສັນຍາລັກຂອງວັດຖຸທີ່ໃຊ້ຮ່ວມກັນເຊິ່ງ
ກໍາລັງຖືກສ້າງຂື້ນຄວນຈະຖືກນໍາໃຊ້ເປັນຕົວກອງໃນຕາຕະລາງສັນຍາລັກຂອງວັດຖຸທີ່ໃຊ້ຮ່ວມກັນ
ຊື່.

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

ບາງຕົວເຊື່ອມຕໍ່ເກົ່າໃຊ້ -F ທາງເລືອກໃນທົ່ວລະບົບຕ່ອງໂສ້ເຄື່ອງມືການລວບລວມສໍາລັບ
ການລະບຸຮູບແບບໄຟລ໌ວັດຖຸສໍາລັບທັງໄຟລ໌ວັດຖຸເຂົ້າ ແລະຜົນຜະລິດ. ຕົວເຊື່ອມຕໍ່ GNU
ນໍາໃຊ້ກົນໄກອື່ນໆສໍາລັບຈຸດປະສົງນີ້: the -b, -- ຮູບແບບ, -- ຮູບແບບ ທາງ​ເລືອກ​, ໄດ້​
ຄໍາສັ່ງ "TARGET" ໃນຕົວເຊື່ອມຕໍ່ສະຄຣິບ, ແລະຕົວແປສະພາບແວດລ້ອມ "GNUTARGET". GNU
linker ຈະບໍ່ສົນໃຈ -F ທາງເລືອກໃນເວລາທີ່ບໍ່ສ້າງວັດຖຸແບ່ງປັນ ELF.

-fini ຊື່
ເມື່ອສ້າງ ELF ປະຕິບັດຫຼືແບ່ງປັນວັດຖຸ, ໂທຫາ NAME ເມື່ອປະຕິບັດໄດ້ຫຼື
ວັດຖຸທີ່ໃຊ້ຮ່ວມກັນຖືກຍົກເລີກການໂຫຼດ, ໂດຍການຕັ້ງຄ່າ DT_FINI ເປັນທີ່ຢູ່ຂອງຟັງຊັນ. ໂດຍ
ຄ່າເລີ່ມຕົ້ນ, ຕົວເຊື່ອມຕໍ່ໃຊ້ "_fini" ເປັນຫນ້າທີ່ໂທຫາ.

-g ບໍ່ສົນໃຈ. ສະຫນອງສໍາລັບຄວາມເຂົ້າກັນໄດ້ກັບເຄື່ອງມືອື່ນໆ.

-Gມູນຄ່າ
--gpsize=ມູນຄ່າ
ກໍາ​ນົດ​ຂະ​ຫນາດ​ສູງ​ສຸດ​ຂອງ​ວັດ​ຖຸ​ທີ່​ຈະ​ປັບ​ປຸງ​ໂດຍ​ນໍາ​ໃຊ້ GP ລົງ​ທະ​ບຽນ​ເພື່ອ​ ຂະຫນາດ. ນີ້
ມີຄວາມຫມາຍພຽງແຕ່ສໍາລັບຮູບແບບໄຟລ໌ວັດຖຸເຊັ່ນ: MIPS ECOFF ທີ່ສະຫນັບສະຫນູນການວາງ
ວັດຖຸຂະຫນາດໃຫຍ່ແລະຂະຫນາດນ້ອຍເຂົ້າໄປໃນພາກສ່ວນທີ່ແຕກຕ່າງກັນ. ອັນນີ້ຖືກລະເລີຍສຳລັບວັດຖຸອື່ນ
ຮູບແບບໄຟລ໌.

-hຊື່
-sonname=ຊື່
ເມື່ອສ້າງວັດຖຸທີ່ໃຊ້ຮ່ວມກັນ ELF, ຕັ້ງຊ່ອງຂໍ້ມູນ DT_SONAME ພາຍໃນໃຫ້ເປັນທີ່ລະບຸ
ຊື່. ເມື່ອ executable ເຊື່ອມໂຍງກັບວັດຖຸທີ່ໃຊ້ຮ່ວມກັນທີ່ມີຊ່ອງຂໍ້ມູນ DT_SONAME,
ຫຼັງຈາກນັ້ນ, ໃນເວລາທີ່ປະຕິບັດການດໍາເນີນການ, ຕົວເຊື່ອມຕໍ່ແບບເຄື່ອນໄຫວຈະພະຍາຍາມໂຫລດການແບ່ງປັນ
ວັດຖຸທີ່ລະບຸໄວ້ໂດຍຊ່ອງຂໍ້ມູນ DT_SONAME ແທນທີ່ຈະໃຊ້ຊື່ໄຟລ໌ທີ່ມອບໃຫ້
ຕົວເຊື່ອມຕໍ່.

-i ດໍາເນີນການເຊື່ອມຕໍ່ທີ່ເພີ່ມຂຶ້ນ (ຄືກັນກັບທາງເລືອກ -r).

-ໃນ​ມັນ ຊື່
ເມື່ອສ້າງ ELF ປະຕິບັດຫຼືແບ່ງປັນວັດຖຸ, ໂທຫາ NAME ເມື່ອປະຕິບັດໄດ້ຫຼື
ວັດຖຸທີ່ໃຊ້ຮ່ວມກັນຖືກໂຫລດ, ໂດຍການຕັ້ງຄ່າ DT_INIT ເປັນທີ່ຢູ່ຂອງຟັງຊັນ. ໂດຍ
ຄ່າເລີ່ມຕົ້ນ, ຕົວເຊື່ອມຕໍ່ໃຊ້ "_init" ເປັນຫນ້າທີ່ໂທຫາ.

-lເກັບ
--library=ເກັບ
ເພີ່ມໄຟລ໌ທີ່ເກັບໄວ້ ເກັບ ໄປຫາບັນຊີລາຍຊື່ຂອງໄຟລ໌ທີ່ຈະເຊື່ອມຕໍ່. ທາງເລືອກນີ້ອາດຈະຖືກນໍາໃຊ້ໃດໆ
ຈໍານວນຄັ້ງ. ld ຈະຄົ້ນຫາລາຍຊື່ເສັ້ນທາງຂອງມັນສໍາລັບການປະກົດຕົວຂອງ "libarchive.a" ສໍາລັບການ
ທຸກ ເກັບ ລະບຸ.

ກ່ຽວກັບລະບົບທີ່ສະຫນັບສະຫນູນຫ້ອງສະຫມຸດຮ່ວມກັນ, ld ອາດຈະຊອກຫາຫ້ອງສະຫມຸດທີ່ມີ
ສ່ວນຂະຫຍາຍນອກເໜືອໄປຈາກ ".a". ໂດຍສະເພາະ, ໃນລະບົບ ELF ແລະ SunOS, ld ຈະຄົ້ນຫາ a
ໄດເລກະທໍລີສໍາລັບຫ້ອງສະຫມຸດທີ່ມີສ່ວນຂະຫຍາຍຂອງ ".so" ກ່ອນທີ່ຈະຊອກຫາຫນຶ່ງດ້ວຍ an
ສ່ວນຂະຫຍາຍຂອງ ".a". ໂດຍສົນທິສັນຍາ, ສ່ວນຂະຫຍາຍ ".so" ຊີ້ໃຫ້ເຫັນຫ້ອງສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນ.

ຕົວເຊື່ອມຕໍ່ຈະຄົ້ນຫາບ່ອນເກັບມ້ຽນພຽງແຕ່ຄັ້ງດຽວ, ຢູ່ທີ່ສະຖານທີ່ທີ່ມັນຖືກລະບຸໄວ້
ເສັ້ນຄໍາສັ່ງ. ຖ້າບ່ອນເກັບມ້ຽນກໍານົດສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດໄວ້ໃນບາງວັດຖຸ
ເຊິ່ງປາກົດຢູ່ກ່ອນບ່ອນເກັບມ້ຽນຢູ່ໃນເສັ້ນຄໍາສັ່ງ, ຕົວເຊື່ອມຕໍ່ຈະປະກອບມີ
ໄຟລ໌ທີ່ເຫມາະສົມຈາກບ່ອນເກັບມ້ຽນ. ຢ່າງໃດກໍຕາມ, ສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດຢູ່ໃນວັດຖຸ
ການປະກົດຕົວຕໍ່ມາໃນແຖວຄໍາສັ່ງຈະບໍ່ເຮັດໃຫ້ຕົວເຊື່ອມຕໍ່ຊອກຫາບ່ອນເກັບມ້ຽນ
ອີກເທື່ອຫນຶ່ງ.

ເບິ່ງ -( ທາງ​ເລືອກ​ສໍາ​ລັບ​ວິ​ທີ​ການ​ທີ່​ຈະ​ບັງ​ຄັບ​ຕົວ​ເຊື່ອມ​ຕໍ່​ເພື່ອ​ຊອກ​ຫາ​ເກັບ​ຫຼາຍ​ຄັ້ງ​.

ເຈົ້າອາດຈະຂຽນລາຍການເກັບມ້ຽນອັນດຽວກັນຫຼາຍຄັ້ງໃນແຖວຄຳສັ່ງ.

ປະເພດຂອງການຄົ້ນຫາທີ່ເກັບໄວ້ນີ້ແມ່ນມາດຕະຖານສໍາລັບຕົວເຊື່ອມຕໍ່ Unix. ຢ່າງໃດກໍຕາມ, ຖ້າທ່ານເປັນ
ການນໍາໃຊ້ ld ໃນ AIX, ໃຫ້ສັງເກດວ່າມັນແຕກຕ່າງຈາກພຶດຕິກໍາຂອງຕົວເຊື່ອມຕໍ່ AIX.

-Lຊອກຫາ
--library-path=ຊອກຫາ
ເພີ່ມເສັ້ນທາງ ຊອກຫາ ກັບບັນຊີລາຍຊື່ຂອງເສັ້ນທາງນັ້ນ ld ຈະ​ຊອກ​ຫາ​ຫ້ອງ​ສະ​ຫມຸດ​ເກັບ​ຮັກ​ສາ​ໄວ້​ແລະ​
ld ສະຄຣິບຄວບຄຸມ. ເຈົ້າອາດຈະໃຊ້ຕົວເລືອກນີ້ທຸກຄັ້ງ. ໄດເລກະທໍລີແມ່ນ
ຄົ້ນຫາໃນຄໍາສັ່ງທີ່ພວກເຂົາຖືກລະບຸໄວ້ໃນເສັ້ນຄໍາສັ່ງ. ລາຍຊື່
ທີ່ລະບຸໄວ້ໃນເສັ້ນຄໍາສັ່ງຖືກຄົ້ນຫາກ່ອນໄດເລກະທໍລີມາດຕະຖານ. ທັງໝົດ -L
ທາງເລືອກໃນການໃຊ້ກັບທັງຫມົດ -l ທາງເລືອກ, ໂດຍບໍ່ສົນເລື່ອງຂອງຄໍາສັ່ງທີ່ທາງເລືອກໃນການປາກົດ.

If ຊອກຫາ ເລີ່ມຕົ້ນດ້ວຍ "=", ຈາກນັ້ນ "=" ຈະຖືກແທນທີ່ດ້ວຍ sysroot ຄຳ ນຳ ໜ້າ, ເປັນ
ເສັ້ນທາງທີ່ລະບຸເມື່ອຕົວເຊື່ອມຕໍ່ຖືກຕັ້ງຄ່າ.

ຊຸດເລີ່ມຕົ້ນຂອງເສັ້ນທາງທີ່ຄົ້ນຫາ (ໂດຍບໍ່ໄດ້ລະບຸໄວ້ກັບ -L) ແມ່ນ​ຂຶ້ນ​ກັບ​ທີ່​
ຮູບແບບການຈຳລອງ ld ກໍາລັງໃຊ້, ແລະໃນບາງກໍລະນີຍັງກ່ຽວກັບວິທີທີ່ມັນຖືກຕັ້ງຄ່າ.

ເສັ້ນທາງຍັງສາມາດຖືກລະບຸໄວ້ໃນສະຄຣິບເຊື່ອມຕໍ່ດ້ວຍຄຳສັ່ງ "SEARCH_DIR".
ໄດເລກະທໍລີທີ່ລະບຸໄວ້ດ້ວຍວິທີນີ້ຖືກຄົ້ນຫາຢູ່ໃນຈຸດທີ່ script linker
ປາກົດຢູ່ໃນເສັ້ນຄໍາສັ່ງ.

-mການເຮັດຕາມຕົວຢ່າງ
ເຮັດຕາມ ການເຮັດຕາມຕົວຢ່າງ ຕົວເຊື່ອມຕໍ່. ທ່ານ​ສາ​ມາດ​ບັນ​ຊີ​ລາຍ​ການ emulations ທີ່​ມີ​ຢູ່​ກັບ​
-- verbose or -V ຕົວເລືອກ

ຖ້າ -m ທາງເລືອກບໍ່ໄດ້ຖືກນໍາໃຊ້, ການຈໍາລອງແມ່ນເອົາມາຈາກ "LDEMULATION"
ຕົວແປສະພາບແວດລ້ອມ, ຖ້າມັນຖືກ ກຳ ນົດ.

ຖ້າບໍ່ດັ່ງນັ້ນ, emulation ໃນຕອນຕົ້ນແມ່ນຂຶ້ນກັບວິທີທີ່ຕົວເຊື່ອມຕໍ່ຖືກຕັ້ງຄ່າ.

-M
--print-ແຜນທີ່
ພິມແຜນທີ່ເຊື່ອມຕໍ່ໄປຫາຜົນໄດ້ຮັບມາດຕະຖານ. ແຜນທີ່ເຊື່ອມຕໍ່ໃຫ້ຂໍ້ມູນກ່ຽວກັບ
ການເຊື່ອມຕໍ່, ລວມທັງຕໍ່ໄປນີ້:

* ບ່ອນທີ່ໄຟລ໌ວັດຖຸແລະສັນຍາລັກຖືກແຜນທີ່ເຂົ້າໄປໃນຫນ່ວຍຄວາມຈໍາ.

* ສັນຍາລັກທົ່ວໄປຖືກຈັດສັນແນວໃດ.

* ສະ​ມາ​ຊິກ​ເກັບ​ກໍາ​ຂໍ້​ມູນ​ທັງ​ຫມົດ​ລວມ​ຢູ່​ໃນ​ການ​ເຊື່ອມ​ຕໍ່​, ມີ​ການ​ກ່າວ​ເຖິງ​ສັນ​ຍາ​ລັກ​ທີ່​
ເຮັດໃຫ້ສະມາຊິກທີ່ເກັບມ້ຽນຖືກນໍາເຂົ້າມາ.

-n
--nmagic
ປິດການຈັດຮຽງໜ້າຂອງພາກສ່ວນຕ່າງໆ, ແລະໝາຍຜົນຜະລິດເປັນ "NMAGIC" ຖ້າເປັນໄປໄດ້.

-N
--ມະຫັດສະຈັນ
ກໍານົດພາກສ່ວນຂໍ້ຄວາມແລະຂໍ້ມູນເພື່ອໃຫ້ສາມາດອ່ານໄດ້ແລະຂຽນໄດ້. ນອກຈາກນັ້ນ, ຢ່າຈັດຮຽງຫນ້າ
ພາກສ່ວນຂໍ້ມູນ, ແລະປິດການເຊື່ອມຕໍ່ກັບຫ້ອງສະຫມຸດທີ່ແບ່ງປັນ. ຖ້າຫາກວ່າຮູບແບບຜົນຜະລິດ
ສະ​ຫນັບ​ສະ​ຫນູນ​ຕົວ​ເລກ magic ແບບ Unix​, ຫມາຍ​ຜົນ​ຜະ​ລິດ​ເປັນ "OMAGIC​"​. ໝາຍເຫດ: ເຖິງແມ່ນວ່າ ກ
ພາກສ່ວນຂໍ້ຄວາມທີ່ສາມາດຂຽນໄດ້ແມ່ນອະນຸຍາດໃຫ້ສໍາລັບເປົ້າຫມາຍ PE-COFF, ມັນບໍ່ສອດຄ່ອງກັບ
ສະເພາະຮູບແບບທີ່ເຜີຍແຜ່ໂດຍ Microsoft.

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

-o output
--output=output
ການນໍາໃຊ້ output ເປັນຊື່ສໍາລັບໂຄງການທີ່ຜະລິດໂດຍ ld; ຖ້າທາງເລືອກນີ້ບໍ່ແມ່ນ
ລະບຸ, ຊື່ ຖືກໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ. ຄໍາສັ່ງ script "OUTPUT" ຍັງສາມາດ
ລະບຸຊື່ໄຟລ໌ຜົນຜະລິດ.

-O ລະດັບ
If ລະດັບ ແມ່ນຄ່າຕົວເລກທີ່ໃຫຍ່ກວ່າສູນ ld optimizes ຜົນຜະລິດ. ນີ້ອາດຈະ
ໃຊ້​ເວ​ລາ​ຫຼາຍ​ທີ່​ສຸດ​ແລະ​ເພາະ​ສະ​ນັ້ນ​ອາດ​ຈະ​ຄວນ​ຈະ​ໄດ້​ຮັບ​ການ​ເປີດ​ໃຊ້​ງານ​ພຽງ​ແຕ່​ສໍາ​ລັບ​ການ​ສຸດ​ທ້າຍ​
ຖານສອງ.

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

ທາງເລືອກນີ້ໄດ້ຮັບການສະຫນັບສະຫນູນຢູ່ໃນເວທີ ELF ເທົ່ານັ້ນ.

-r
-- ຍ້າຍ​ອອກ​ໄດ້​
ສ້າງຜົນຜະລິດທີ່ສາມາດຍ້າຍຖິ່ນຖານໄດ້ --- ie, ສ້າງໄຟລ໌ຜົນຜະລິດທີ່ສາມາດເຮັດຫນ້າທີ່ເປັນ
ປ້ອນໃສ່ ld. ອັນນີ້ມັກເອີ້ນວ່າ partial ເຊື່ອມຕໍ່. ໃນຖານະເປັນຜົນກະທົບຂ້າງຄຽງ, ໃນສະພາບແວດລ້ອມ
ທີ່ຮອງຮັບຕົວເລກ magic Unix ມາດຕະຖານ, ທາງເລືອກນີ້ຍັງກໍານົດໄຟລ໌ຜົນຜະລິດ
ເລກ magic ກັບ "OMAGIC". ຖ້າຕົວເລືອກນີ້ບໍ່ໄດ້ຖືກລະບຸ, ໄຟລ໌ຢ່າງແທ້ຈິງແມ່ນ
ຜະລິດ. ເມື່ອເຊື່ອມຕໍ່ໂຄງການ C ++, ທາງເລືອກນີ້ ຈະ ບໍ່ ແກ້ໄຂການອ້າງອີງເຖິງ
ຜູ້ກໍ່ສ້າງ; ເພື່ອເຮັດສິ່ງນີ້, ໃຊ້ - ອ.

ເມື່ອໄຟລ໌ປ້ອນຂໍ້ມູນບໍ່ມີຮູບແບບດຽວກັນກັບໄຟລ໌ຜົນຜະລິດ, ການເຊື່ອມໂຍງບາງສ່ວນ
ຮອງຮັບພຽງແຕ່ຖ້າໄຟລ໌ປ້ອນຂໍ້ມູນນັ້ນບໍ່ມີການຍົກຍ້າຍໃດໆ. ແຕກຕ່າງກັນ
ຮູບແບບຜົນຜະລິດສາມາດມີຂໍ້ຈໍາກັດຕື່ມອີກ; ຕົວຢ່າງບາງຮູບແບບ "a.out" ທີ່ອີງໃສ່
ບໍ່ຮອງຮັບການເຊື່ອມໂຍງບາງສ່ວນກັບໄຟລ໌ປ້ອນຂໍ້ມູນໃນຮູບແບບອື່ນເລີຍ.

ທາງເລືອກນີ້ເຮັດເຊັ່ນດຽວກັນກັບ -i.

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

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

-s
--strip-ທັງໝົດ
ຍົກເລີກຂໍ້ມູນສັນຍາລັກທັງໝົດຈາກໄຟລ໌ຜົນຜະລິດ.

-S
--strip-debug
ປ່ອຍຂໍ້ມູນສັນຍາລັກດີບັກ (ແຕ່ບໍ່ແມ່ນສັນຍາລັກທັງໝົດ) ຈາກໄຟລ໌ຜົນຜະລິດ.

-t
-- ຕິດຕາມ
ພິມຊື່ຂອງໄຟລ໌ປ້ອນຂໍ້ມູນເປັນ ld ປະມວນຜົນພວກມັນ.

-T ໄຟລ໌ສະຄຣິບ
--script=ໄຟລ໌ສະຄຣິບ
ການນໍາໃຊ້ ໄຟລ໌ສະຄຣິບ ເປັນຕົວເຊື່ອມຕໍ່. ສະຄຣິບນີ້ປ່ຽນແທນ ldscript linker ເລີ່ມຕົ້ນຂອງ
(ແທນທີ່ຈະຕື່ມໃສ່ມັນ), ດັ່ງນັ້ນ ໄຟລ໌ຄໍາສັ່ງ ຕ້ອງລະບຸທຸກຢ່າງທີ່ຈໍາເປັນເພື່ອ
ອະທິບາຍໄຟລ໌ຜົນຜະລິດ. ຖ້າ ໄຟລ໌ສະຄຣິບ ບໍ່ມີຢູ່ໃນໄດເລກະທໍລີປະຈຸບັນ,
"ld" ຊອກຫາມັນຢູ່ໃນໄດເລກະທໍລີທີ່ລະບຸໄວ້ກ່ອນຫນ້າໃດໆ -L ທາງເລືອກ. ຫຼາຍ
-T ທາງ​ເລືອກ​ສະ​ສົມ​.

-u ສັນຍາລັກ
--undefined=ສັນຍາລັກ
ຜົນ​ບັງ​ຄັບ​ໃຊ້ ສັນຍາລັກ ຈະຖືກໃສ່ໃນໄຟລ໌ຜົນຜະລິດເປັນສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດ. ການ​ເຮັດ​ນີ້​ອາດ​ຈະ​,
ຕົວຢ່າງ, ກະຕຸ້ນການເຊື່ອມຕໍ່ຂອງໂມດູນເພີ່ມເຕີມຈາກຫ້ອງສະຫມຸດມາດຕະຖານ. -u ອາດຈະເປັນ
ຊ້ຳກັບ arguments ທາງເລືອກທີ່ແຕກຕ່າງກັນເພື່ອໃສ່ສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດເພີ່ມເຕີມ. ນີ້
ທາງເລືອກແມ່ນທຽບເທົ່າກັບຄໍາສັ່ງ "EXTERN" linker script.

- ອ ສໍາລັບສິ່ງອື່ນນອກຈາກໂຄງການ C ++, ທາງເລືອກນີ້ແມ່ນທຽບເທົ່າກັບ -r: ມັນສ້າງ
ຜົນຜະລິດທີ່ສາມາດຍ້າຍໄດ້ --- ie, ໄຟລ໌ຜົນຜະລິດທີ່ສາມາດເຮັດຫນ້າທີ່ເປັນ input ກັບ ldທີ່ຢູ່ ເມື່ອ​ໃດ​
ການ​ເຊື່ອມ​ຕໍ່​ໂຄງ​ການ C++​, - ອ ບໍ່ ແກ້ໄຂການອ້າງອີງເຖິງຜູ້ກໍ່ສ້າງ, ບໍ່ເຫມືອນກັບ -r. ມັນ​ເຮັດ
ບໍ່ເຮັດວຽກເພື່ອນໍາໃຊ້ - ອ ຢູ່ໃນໄຟລ໌ທີ່ຕົນເອງເຊື່ອມຕໍ່ກັບ - ອ; ເມື່ອ
ຕາຕະລາງ constructor ໄດ້ຖືກສ້າງຂຶ້ນ, ມັນບໍ່ສາມາດເພີ່ມໃສ່ໄດ້. ໃຊ້ - ອ ພຽງແຕ່ສໍາລັບການສຸດທ້າຍ
ການເຊື່ອມຕໍ່ບາງສ່ວນ, ແລະ -r ສໍາລັບຄົນອື່ນ.

--ເປັນເອກະລັກ[=SECTION]
ສ້າງ​ພາກ​ສ່ວນ​ຜົນ​ຜະ​ລິດ​ແຍກ​ຕ່າງ​ຫາກ​ສໍາ​ລັບ​ທຸກ​ພາກ​ສ່ວນ​ການ​ປ້ອນ​ຂໍ້​ມູນ​ທີ່​ກົງ​ກັນ​ SECTION, ຫຼືຖ້າວ່າ
ຕົວແທນທາງເລືອກ SECTION argument ຫາຍໄປ, ສໍາລັບທຸກພາກສ່ວນປ້ອນຂໍ້ມູນເດັກກໍາພ້າ. ອັນ
ພາກສ່ວນເດັກກໍາພ້າແມ່ນສ່ວນຫນຶ່ງທີ່ບໍ່ໄດ້ກ່າວເຖິງໂດຍສະເພາະໃນຕົວເຊື່ອມຕໍ່. ເຈົ້າອາດຈະໃຊ້ອັນນີ້
ທາງເລືອກຫຼາຍຄັ້ງໃນແຖວຄໍາສັ່ງ; ມັນປ້ອງກັນການລວມເຂົ້າກັນປົກກະຕິ
ພາກ​ສ່ວນ​ທີ່​ມີ​ຊື່​ດຽວ​ກັນ​, overriding ການ​ມອບ​ຫມາຍ​ພາກ​ສ່ວນ​ຜົນ​ຜະ​ລິດ​ໃນ​ສະ​ຄຣິ​ບ linker​.

-v
- ການປ່ຽນແປງ
-V ສະແດງໝາຍເລກເວີຊັນສຳລັບ ld. ໄດ້ -V ທາງ​ເລືອກ​ຍັງ​ລາຍ​ການ emulations ສະ​ຫນັບ​ສະ​ຫນູນ​.

-x
--ຍົກເລີກທັງໝົດ
ລຶບສັນຍາລັກທ້ອງຖິ່ນທັງໝົດ.

-X
--discard-ທ້ອງຖິ່ນ
ລຶບສັນຍາລັກທ້ອງຖິ່ນຊົ່ວຄາວທັງໝົດ. ສໍາລັບເປົ້າຫມາຍສ່ວນໃຫຍ່, ນີ້ແມ່ນສັນຍາລັກທ້ອງຖິ່ນທັງຫມົດທີ່ມີ
ຊື່ເລີ່ມຕົ້ນດ້ວຍ L.

-y ສັນຍາລັກ
--trace-symbol=ສັນຍາລັກ
ພິມຊື່ຂອງແຕ່ລະໄຟລ໌ທີ່ເຊື່ອມຕໍ່ນັ້ນ ສັນຍາລັກ ປະກົດ. ທາງເລືອກນີ້ອາດຈະຖືກມອບໃຫ້
ຈໍານວນຄັ້ງໃດນຶ່ງ. ໃນຫຼາຍລະບົບ, ມັນ ຈຳ ເປັນຕ້ອງມີຂີດກ້ອງ.

ທາງເລືອກນີ້ແມ່ນເປັນປະໂຫຍດໃນເວລາທີ່ທ່ານມີສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດຢູ່ໃນການເຊື່ອມຕໍ່ຂອງທ່ານແຕ່ບໍ່ຮູ້
ບ່ອນທີ່ການອ້າງອິງແມ່ນມາຈາກ.

-Y ເສັ້ນທາງ
ຕື່ມ ເສັ້ນທາງ ໄປຫາເສັ້ນທາງຄົ້ນຫາຫ້ອງສະໝຸດເລີ່ມຕົ້ນ. ຕົວເລືອກນີ້ມີຢູ່ສໍາລັບ Solaris
ຄວາມເຂົ້າກັນໄດ້.

-z ຄໍາ
ຄໍາສໍາຄັນທີ່ຖືກຮັບຮູ້ແມ່ນ:

combreloc
ສົມທົບການຍົກຍ້າຍຫຼາຍພາກສ່ວນ ແລະຈັດຮຽງພວກມັນເພື່ອເຮັດໃຫ້ການຊອກຫາສັນຍາລັກແບບເຄື່ອນໄຫວ
ການເກັບຂໍ້ມູນທີ່ເປັນໄປໄດ້.

defs
ບໍ່ອະນຸຍາດສັນຍາລັກທີ່ບໍ່ໄດ້ກຳນົດໄວ້ໃນໄຟລ໌ວັດຖຸ. ສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດໄວ້ໃນການແບ່ງປັນ
ຫ້ອງສະຫມຸດຍັງໄດ້ຮັບອະນຸຍາດ.

ທຳອິດ
ຕົວເລືອກນີ້ມີຄວາມຫມາຍພຽງແຕ່ເມື່ອສ້າງວັດຖຸທີ່ໃຊ້ຮ່ວມກັນ. ມັນຫມາຍວັດຖຸ
ດັ່ງນັ້ນການເລີ່ມຕົ້ນ runtime ຂອງມັນຈະເກີດຂຶ້ນກ່ອນທີ່ຈະເລີ່ມຕົ້ນ runtime ຂອງ
ວັດຖຸອື່ນໆທີ່ນໍາເອົາເຂົ້າໃນຂະບວນການໃນເວລາດຽວກັນ. ເຊັ່ນດຽວກັນ
runtime finalization ຂອງວັດຖຸຈະເກີດຂຶ້ນຫຼັງຈາກ runtime finalization ຂອງ
ວັດຖຸອື່ນໆ.

ແຊກແຊງ
ຫມາຍວັດຖຸທີ່ຕາຕະລາງສັນຍາລັກຂອງມັນ interposes ກ່ອນສັນຍາລັກທັງຫມົດແຕ່ໄດ້
ການ​ປະ​ຕິ​ບັດ​ຂັ້ນ​ຕົ້ນ​.

loadfltr
ໝາຍວັດຖຸທີ່ຕົວກອງຂອງມັນຈະຖືກປະມວນຜົນທັນທີໃນເວລາແລ່ນ.

muldefs
ອະນຸຍາດຫຼາຍຄໍານິຍາມ.

nocombreloc
ປິດໃຊ້ງານການລວມເອົາພາກສ່ວນການຍົກຍ້າຍຫຼາຍອັນ.

nocopyreloc
ປິດການນຳໃຊ້ການຜະລິດສຳເນົາການຍົກຍ້າຍ.

nodefaultlib
ໝາຍວັດຖຸທີ່ການຊອກຫາຄວາມຂຶ້ນກັບຂອງວັດຖຸນີ້ຈະບໍ່ສົນໃຈໃດໆ
ເສັ້ນທາງຄົ້ນຫາຫ້ອງສະໝຸດເລີ່ມຕົ້ນ.

nodelete
ໝາຍວ່າວັດຖຸບໍ່ຄວນຖືກຖອດອອກໃນເວລາແລ່ນ.

ໂນໂລເປນ
ໝາຍວັດຖຸບໍ່ມີໃຫ້ "dlopen".

nodump
ໝາຍວ່າວັດຖຸບໍ່ສາມາດຖືກຖິ້ມໂດຍ "dldump".

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

ຕົ້ນກໍາເນີດ
ໝາຍວັດຖຸອາດມີ $ORIGIN.

ຄໍາສໍາຄັນອື່ນໆແມ່ນຖືກລະເລີຍສໍາລັບຄວາມເຂົ້າກັນໄດ້ຂອງ Solaris.

-( ເອກະສານ -)
--ກຸ່ມເລີ່ມຕົ້ນ ເອກະສານ --ກຸ່ມສຸດທ້າຍ
ໄດ້ ເອກະສານ ຄວນເປັນບັນຊີລາຍຊື່ຂອງໄຟລ໌ທີ່ເກັບໄວ້. ພວກມັນອາດຈະເປັນໄຟລ໌ທີ່ຊັດເຈນ
ຊື່, ຫຼື -l ຕົວເລືອກ

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

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

--accept-unknown-input-arch
--no-accept-unknown-input-arch
ບອກຕົວເຊື່ອມຕໍ່ໃຫ້ຍອມຮັບໄຟລ໌ປ້ອນຂໍ້ມູນທີ່ສະຖາປັດຕະຍະກຳບໍ່ສາມາດຮັບຮູ້ໄດ້. ໄດ້
ສົມມຸດຕິຖານແມ່ນວ່າຜູ້ໃຊ້ຮູ້ວ່າພວກເຂົາກໍາລັງເຮັດຫຍັງແລະເຈດຕະນາຕ້ອງການການເຊື່ອມຕໍ່
ໃນໄຟລ໌ປ້ອນຂໍ້ມູນທີ່ບໍ່ຮູ້ຈັກເຫຼົ່ານີ້. ນີ້ແມ່ນພຶດຕິກໍາເລີ່ມຕົ້ນຂອງຕົວເຊື່ອມຕໍ່, ກ່ອນຫນ້ານີ້
ລຸ້ນ 2.14. ພຶດຕິກໍາເລີ່ມຕົ້ນຈາກການປ່ອຍ 2.14 ເປັນຕົ້ນໄປແມ່ນການປະຕິເສດການປ້ອນຂໍ້ມູນດັ່ງກ່າວ
ໄຟລ໌, ແລະອື່ນໆ --accept-unknown-input-arch ທາງ​ເລືອກ​ໄດ້​ຖືກ​ເພີ່ມ​ເພື່ອ​ຟື້ນ​ຟູ​ຂອງ​ເກົ່າ​
ພຶດຕິ ກຳ.

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

-- ເພີ່ມ​ຄວາມ​ຈໍາ​ເປັນ​
--no-add-need
ຕົວເລືອກນີ້ມີຜົນຕໍ່ການປິ່ນປົວຫ້ອງສະໝຸດແບບເຄື່ອນໄຫວຈາກແທັກ ELF DT_NEEDED ໃນ
ຫ້ອງສະຫມຸດແບບເຄື່ອນໄຫວທີ່ໄດ້ກ່າວມາໃນເສັ້ນຄໍາສັ່ງຫຼັງຈາກ --no-add-need ທາງເລືອກ.
ໂດຍປົກກະຕິ, ຕົວເຊື່ອມຕໍ່ຈະເພີ່ມແທັກ DT_NEEDED ສໍາລັບແຕ່ລະຫ້ອງສະໝຸດແບບເຄື່ອນໄຫວຈາກ DT_NEEDED
ແທັກ. --no-add-need ສາເຫດ DT_NEEDED tags ຈະບໍ່ຖືກປ່ອຍອອກມາສໍາລັບຫ້ອງສະຫມຸດເຫຼົ່ານັ້ນ
ຈາກ DT_NEEDED tags. -- ເພີ່ມ​ຄວາມ​ຈໍາ​ເປັນ​ ຟື້ນຟູພຶດຕິກຳເລີ່ມຕົ້ນ.

- ຢືນ​ຢັນ​ ຄໍາ
ຕົວເລືອກນີ້ຖືກລະເລີຍສໍາລັບຄວາມເຂົ້າກັນໄດ້ຂອງ SunOS.

-Bdynamic
-ດີ
-call_shared
ເຊື່ອມຕໍ່ກັບຫ້ອງສະຫມຸດແບບເຄື່ອນໄຫວ. ນີ້ແມ່ນຄວາມຫມາຍພຽງແຕ່ຢູ່ໃນເວທີທີ່ແບ່ງປັນ
ຫ້ອງສະຫມຸດໄດ້ຮັບການສະຫນັບສະຫນູນ. ຕົວເລືອກນີ້ແມ່ນປົກກະຕິເປັນຄ່າເລີ່ມຕົ້ນໃນເວທີດັ່ງກ່າວ. ໄດ້
variants ທີ່ແຕກຕ່າງກັນຂອງທາງເລືອກນີ້ແມ່ນສໍາລັບການເຂົ້າກັນໄດ້ກັບລະບົບຕ່າງໆ. ເຈົ້າອາດຈະ
ໃຊ້ຕົວເລືອກນີ້ຫຼາຍຄັ້ງໃນແຖວຄໍາສັ່ງ: ມັນມີຜົນກະທົບຕໍ່ການຊອກຫາຫ້ອງສະຫມຸດ
-l ທາງເລືອກທີ່ປະຕິບັດຕາມມັນ.

- ກຸ່ມ
ຕັ້ງທຸງ "DF_1_GROUP" ໃນລາຍການ "DT_FLAGS_1" ໃນພາກສ່ວນໄດນາມິກ. ນີ້
ເຮັດໃຫ້ຕົວເຊື່ອມຕໍ່ runtime ຈັດການການຊອກຫາຢູ່ໃນວັດຖຸນີ້ແລະການຂື້ນກັບມັນ
ປະຕິບັດພຽງແຕ່ພາຍໃນກຸ່ມ. --unresolved-symbols=ລາຍງານ-ທັງໝົດ ຫມາຍເຖິງ. ນີ້
ທາງເລືອກແມ່ນມີຄວາມຫມາຍພຽງແຕ່ໃນເວທີ ELF ທີ່ສະຫນັບສະຫນູນຫ້ອງສະຫມຸດຮ່ວມກັນ.

-Bstatic
-dn
-non_shared
-static
ຫ້າມເຊື່ອມຕໍ່ຫາຫ້ອງສະໝຸດທີ່ແບ່ງປັນ. ນີ້ແມ່ນຄວາມຫມາຍພຽງແຕ່ໃນເວທີທີ່
ຫ້ອງສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນໄດ້ຮັບການສະຫນັບສະຫນູນ. variants ທີ່ແຕກຕ່າງກັນຂອງທາງເລືອກນີ້ແມ່ນສໍາລັບ
ຄວາມເຂົ້າກັນໄດ້ກັບລະບົບຕ່າງໆ. ທ່ານ​ອາດ​ຈະ​ນໍາ​ໃຊ້​ທາງ​ເລືອກ​ນີ້​ຫຼາຍ​ຄັ້ງ​ໃນ​
ເສັ້ນຄໍາສັ່ງ: ມັນມີຜົນກະທົບຕໍ່ການຊອກຫາຫ້ອງສະຫມຸດ -l ທາງເລືອກທີ່ປະຕິບັດຕາມມັນ. ນີ້
ທາງເລືອກຍັງຫມາຍເຖິງ --unresolved-symbols=ລາຍງານ-ທັງໝົດ.

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

-- ກວດ​ສອບ​ພາກ​ສ່ວນ​
--no-check-sections
ຖາມຕົວເຊື່ອມຕໍ່ ບໍ່ ເພື່ອກວດເບິ່ງທີ່ຢູ່ຂອງພາກຫຼັງຈາກພວກເຂົາໄດ້ຖືກມອບຫມາຍເພື່ອເບິ່ງວ່າ
ມີການທັບຊ້ອນກັນ. ປົກກະຕິແລ້ວຕົວເຊື່ອມຕໍ່ຈະປະຕິບັດການກວດສອບນີ້, ແລະຖ້າມັນພົບເຫັນໃດໆ
overlaps ມັນຈະຜະລິດຂໍ້ຄວາມຄວາມຜິດພາດທີ່ເຫມາະສົມ. linker ບໍ່ຮູ້ກ່ຽວກັບ, ແລະ
ບໍ່ເຮັດໃຫ້ເງິນອຸດຫນູນສໍາລັບພາກສ່ວນໃນ overlays. ພຶດຕິກໍາເລີ່ມຕົ້ນສາມາດຟື້ນຟູໄດ້
ໂດຍ​ການ​ນໍາ​ໃຊ້​ສະ​ຫຼັບ​ເສັ້ນ​ຄໍາ​ສັ່ງ​ -- ກວດ​ສອບ​ພາກ​ສ່ວນ​.

--cref
ອອກຕາຕະລາງອ້າງອີງຂ້າມ. ຖ້າໄຟລ໌ແຜນທີ່ linker ກໍາລັງຖືກສ້າງຂື້ນ, ຂ້າມ
ຕາຕະລາງອ້າງອີງຖືກພິມໃສ່ໄຟລ໌ແຜນທີ່. ຖ້າບໍ່ດັ່ງນັ້ນ, ມັນຖືກພິມຢູ່ໃນມາດຕະຖານ
ຜົນຜະລິດ.

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

--no-define-common
ຕົວເລືອກນີ້ຍັບຍັ້ງການມອບຫມາຍທີ່ຢູ່ໃຫ້ກັບສັນຍາລັກທົ່ວໄປ. ສະຄຣິບ
ຄໍາສັ່ງ "INHIBIT_COMMON_ALLOCATION" ມີຜົນຄືກັນ.

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

-- defsym ສັນຍາລັກ=ການສະແດງອອກ
ສ້າງ​ສັນ​ຍາ​ລັກ​ທົ່ວ​ໂລກ​ໃນ​ໄຟລ​໌​ຜົນ​ຜະ​ລິດ​ໄດ້​, ປະ​ກອບ​ດ້ວຍ​ທີ່​ຢູ່​ຢ່າງ​ແທ້​ຈິງ​ໃຫ້​ໂດຍ​
ການສະແດງອອກ. ເຈົ້າອາດຈະໃຊ້ຕົວເລືອກນີ້ຫຼາຍເທື່ອເທົ່າທີ່ຈຳເປັນເພື່ອກຳນົດຫຼາຍອັນ
ສັນຍາລັກໃນເສັ້ນຄໍາສັ່ງ. ຮູບ​ແບບ​ຈໍາ​ກັດ​ຂອງ​ເລກ​ຄະ​ນິດ​ສາດ​ແມ່ນ​ສະ​ຫນັບ​ສະ​ຫນູນ​ສໍາ​ລັບ​ການ​
ການສະແດງອອກ ໃນສະພາບການນີ້: ທ່ານອາດຈະໃຫ້ຄ່າຄົງທີ່ຂອງເລກຖານສິບຫົກຫຼືຊື່ຂອງ an
ສັນຍາລັກທີ່ມີຢູ່ແລ້ວ, ຫຼືໃຊ້ "+" ແລະ "-" ເພື່ອເພີ່ມຫຼືລົບຄ່າຄົງທີ່ຂອງເລກຖານສິບຫົກຫຼື
ສັນຍາລັກ. ຖ້າທ່ານຕ້ອງການການສະແດງອອກທີ່ລະອຽດກວ່າ, ໃຫ້ພິຈາລະນາໃຊ້ຄໍາສັ່ງ linker
ພາສາຈາກ script. ຫມາຍ​ເຫດ​: ບໍ່ຄວນມີຊ່ອງຫວ່າງລະຫວ່າງ ສັນຍາລັກ, ການ
ເຄື່ອງໝາຍເທົ່າກັບ (``=''), ແລະ ການສະແດງອອກ.

--demangle[=ແບບ]
-- ບໍ່​ມີ​ການ​ຂັດ​ຂວາງ​
ທາງ​ເລືອກ​ເຫຼົ່າ​ນີ້​ຄວບ​ຄຸມ​ວ່າ​ຈະ demangle ຊື່​ສັນ​ຍາ​ລັກ​ໃນ​ຂໍ້​ຄວາມ​ຜິດ​ພາດ​ແລະ​ອື່ນໆ​
ຜົນຜະລິດ. ເມື່ອຕົວເຊື່ອມຕໍ່ຖືກບອກໃຫ້ demangle, ມັນພະຍາຍາມນໍາສະເຫນີຊື່ສັນຍາລັກໃນ a
ແຟຊັ່ນທີ່ສາມາດອ່ານໄດ້: ມັນລອກເອົາຈຸດຂີດກ້ອງອອກຖ້າພວກມັນຖືກໃຊ້ໂດຍໄຟລ໌ວັດຖຸ
ຮູບແບບ, ແລະປ່ຽນ C++ ຊື່ສັນຍາລັກ mangled ເປັນຊື່ທີ່ຜູ້ໃຊ້ສາມາດອ່ານໄດ້. ແຕກຕ່າງກັນ
compilers ມີຮູບແບບ mangling ທີ່ແຕກຕ່າງກັນ. ການໂຕ້ຖຽງແບບ demangling ທາງເລືອກສາມາດ
ຖືກນໍາໃຊ້ເພື່ອເລືອກຮູບແບບ demangling ທີ່ເຫມາະສົມສໍາລັບ compiler ຂອງທ່ານ. ຕົວເຊື່ອມຕໍ່ຈະ
demangle ໂດຍຄ່າເລີ່ມຕົ້ນເວັ້ນເສຍແຕ່ວ່າສະພາບແວດລ້ອມມີການປ່ຽນແປງ COLLECT_NO_DEMANGLE ຖືກກໍານົດ. ເຫຼົ່ານີ້
ຕົວເລືອກອາດຈະຖືກໃຊ້ເພື່ອລົບລ້າງຄ່າເລີ່ມຕົ້ນ.

--dynamic-linker ເອກະສານ
ກໍານົດຊື່ຂອງຕົວເຊື່ອມຕໍ່ແບບເຄື່ອນໄຫວ. ນີ້ແມ່ນຄວາມຫມາຍພຽງແຕ່ໃນເວລາທີ່ສ້າງ
ເຊື່ອມຕໍ່ແບບເຄື່ອນໄຫວ ELF ປະຕິບັດໄດ້. ຕົວເຊື່ອມຕໍ່ແບບເຄື່ອນໄຫວເລີ່ມຕົ້ນແມ່ນຖືກຕ້ອງຕາມປົກກະຕິ;
ຢ່າໃຊ້ອັນນີ້ເວັ້ນເສຍແຕ່ວ່າທ່ານຮູ້ວ່າທ່ານກໍາລັງເຮັດຫຍັງ.

-- ເຕືອນໄພອັນຕະລາຍ
ປະຕິບັດການເຕືອນໄພທັງຫມົດເປັນຄວາມຜິດພາດ.

--force-exe-suffix
ໃຫ້ແນ່ໃຈວ່າໄຟລ໌ຜົນຜະລິດມີຄໍາຕໍ່ທ້າຍ .exe.

ຖ້າ​ຫາກ​ວ່າ​ໄຟລ​໌​ຜົນ​ຜະ​ລິດ​ທີ່​ເຊື່ອມ​ໂຍງ​ຢ່າງ​ເຕັມ​ທີ່​ສ້າງ​ສໍາ​ເລັດ​ບໍ່​ມີ ".exe​" ຫຼື ".dll​"​.
ຄໍາຕໍ່ທ້າຍ, ທາງເລືອກນີ້ບັງຄັບໃຫ້ຕົວເຊື່ອມຕໍ່ເພື່ອຄັດລອກໄຟລ໌ຜົນຜະລິດໄປຫາຫນຶ່ງໃນຊື່ດຽວກັນ
ດ້ວຍຄຳຕໍ່ທ້າຍ ".exe". ຕົວເລືອກນີ້ແມ່ນເປັນປະໂຫຍດໃນເວລາທີ່ການນໍາໃຊ້ unmodified makefiles Unix ໃນ a
Microsoft Windows host, ເນື່ອງຈາກວ່າບາງລຸ້ນຂອງ Windows ຈະບໍ່ດໍາເນີນການຮູບພາບເວັ້ນເສຍແຕ່ວ່າມັນ
ສິ້ນສຸດດ້ວຍ ".exe" ຕໍ່ທ້າຍ.

--no-gc-sections
--gc-sections
ເປີດໃຊ້ການເກັບຂີ້ເຫຍື້ອຂອງພາກສ່ວນປ້ອນຂໍ້ມູນທີ່ບໍ່ໄດ້ໃຊ້. ມັນຖືກລະເລີຍໃນເປົ້າໝາຍທີ່ເຮັດ
ບໍ່ຮອງຮັບຕົວເລືອກນີ້. ຕົວເລືອກນີ້ບໍ່ເຂົ້າກັນໄດ້ກັບ -r. ພຶດຕິກໍາເລີ່ມຕົ້ນ
(ຂອງການບໍ່ປະຕິບັດການເກັບຂີ້ເຫຍື້ອນີ້) ສາມາດຟື້ນຟູໄດ້ໂດຍການລະບຸ
--no-gc-sections ຢູ່ໃນເສັ້ນຄໍາສັ່ງ.

- ຊ່ວຍ
ພິມບົດສະຫຼຸບຂອງຕົວເລືອກແຖວຄໍາສັ່ງກ່ຽວກັບຜົນໄດ້ຮັບມາດຕະຖານແລະອອກ.

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

- ແຜນທີ່ ໄຟລ໌ແຜນທີ່
ພິມແຜນທີ່ເຊື່ອມຕໍ່ໃສ່ໄຟລ໌ ໄຟລ໌ແຜນທີ່. ເບິ່ງລາຍລະອຽດຂອງ -M ທາງເລືອກ, ຂ້າງເທິງ.

--no-keep-memory
ld ປົກກະຕິແລ້ວ optimizes ສໍາລັບຄວາມໄວໃນໄລຍະການນໍາໃຊ້ຫນ່ວຍຄວາມຈໍາໂດຍການ caching ຕາຕະລາງສັນຍາລັກຂອງ
ປ້ອນ​ໄຟລ​໌​ໃນ​ຫນ່ວຍ​ຄວາມ​ຈໍາ​. ທາງເລືອກນີ້ບອກ ld ແທນທີ່ຈະເພີ່ມປະສິດທິພາບສໍາລັບການນໍາໃຊ້ຫນ່ວຍຄວາມຈໍາ, ໂດຍ
ການອ່ານຕາຕະລາງສັນຍາລັກຄືນໃໝ່ຕາມຄວາມຈໍາເປັນ. ນີ້ອາດຈະຕ້ອງການຖ້າຫາກວ່າ ld ແລ່ນອອກຈາກ
ພື້ນທີ່ຫນ່ວຍຄວາມຈໍາໃນຂະນະທີ່ເຊື່ອມຕໍ່ການປະຕິບັດຂະຫນາດໃຫຍ່.

--no-undefined
-z defs
ລາຍງານການອ້າງອີງສັນຍາລັກທີ່ບໍ່ໄດ້ຮັບການແກ້ໄຂຈາກໄຟລ໌ວັດຖຸປົກກະຕິ. ນີ້ແມ່ນເຮັດໄດ້ເຖິງແມ່ນວ່າ
linker ກໍາລັງສ້າງຫ້ອງສະຫມຸດແບ່ງປັນທີ່ບໍ່ແມ່ນສັນຍາລັກ. ສະຫຼັບ
--[no-]allow-shlib-undefined ຄວບຄຸມພຶດຕິກໍາການລາຍງານທີ່ບໍ່ໄດ້ຮັບການແກ້ໄຂ
ການອ້າງອິງທີ່ພົບເຫັນຢູ່ໃນຫ້ອງສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນຖືກເຊື່ອມຕໍ່ໃນ.

--allow-multiple-definition
-z muldefs
ໂດຍປົກກະຕິເມື່ອສັນຍາລັກຖືກກໍານົດຫຼາຍຄັ້ງ, ຕົວເຊື່ອມຕໍ່ຈະລາຍງານຄວາມຕາຍ
ຄວາມຜິດພາດ. ທາງເລືອກເຫຼົ່ານີ້ອະນຸຍາດໃຫ້ຫຼາຍຄໍານິຍາມແລະຄໍານິຍາມທໍາອິດຈະຖືກນໍາໃຊ້.

--allow-shlib-undefined
--no-allow-shlib-undefined
ອະນຸຍາດ (ຄ່າເລີ່ມຕົ້ນ) ຫຼືບໍ່ອະນຸຍາດສັນຍາລັກທີ່ບໍ່ໄດ້ກຳນົດໄວ້ໃນຫ້ອງສະໝຸດທີ່ແບ່ງປັນ. ສະຫຼັບນີ້
ແມ່ນຄ້າຍຄືກັນກັບ --no-undefined ຍົກເວັ້ນວ່າມັນກໍານົດພຶດຕິກໍາໃນເວລາທີ່
ສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດຢູ່ໃນຫ້ອງສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນແທນທີ່ຈະເປັນໄຟລ໌ວັດຖຸປົກກະຕິ. ມັນ​ເຮັດ
ບໍ່ມີຜົນກະທົບແນວໃດສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດໄວ້ໃນໄຟລ໌ວັດຖຸປົກກະຕິຖືກຈັດການ.

ເຫດຜົນທີ່ວ່າ --allow-shlib-undefined ແມ່ນຄ່າເລີ່ມຕົ້ນແມ່ນຫ້ອງສະໝຸດທີ່ແບ່ງປັນ
ຈະຖືກລະບຸໃນເວລາເຊື່ອມຕໍ່ອາດຈະບໍ່ຄືກັບອັນທີ່ສາມາດໃຊ້ໄດ້ໃນເວລາໂຫຼດ
ເວລາ, ດັ່ງນັ້ນສັນຍາລັກອາດຈະແກ້ໄຂໄດ້ໃນເວລາໂຫຼດ. ນອກຈາກນັ້ນຍັງມີບາງ
ລະບົບ, (ເຊັ່ນ: BeOS) ບ່ອນທີ່ສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດຢູ່ໃນຫ້ອງສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນແມ່ນປົກກະຕິ. (ແກ່ນ
ແກ້ໄຂພວກມັນໃນເວລາໂຫຼດເພື່ອເລືອກຟັງຊັນໃດ ເໝາະ ສົມທີ່ສຸດ ສຳ ລັບປະຈຸບັນ
ຖາປັດຕະຍະ. ອັນນີ້ໃຊ້ເປັນຕົວຢ່າງເພື່ອເລືອກ memset ທີ່ເຫມາະສົມແບບໄດນາມິກ
ຫນ້າທີ່). ປາກົດຂື້ນວ່າມັນເປັນເລື່ອງປົກກະຕິສໍາລັບຫ້ອງສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນຂອງ HPPA ທີ່ບໍ່ໄດ້ກໍານົດ
ສັນຍາລັກ.

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

--default-symver
ສ້າງ​ແລະ​ນໍາ​ໃຊ້​ສະ​ບັບ​ສັນ​ຍາ​ລັກ​ເລີ່ມ​ຕົ້ນ (ຊື່ soname​) ສໍາ​ລັບ​ສັນ​ຍາ​ລັກ​ທີ່​ສົ່ງ​ອອກ unversioned​.

--default-imported-symver
ສ້າງແລະໃຊ້ສັນຍາລັກເລີ່ມຕົ້ນສະບັບ (ຊື່ soname) ສໍາລັບສັນຍາລັກນໍາເຂົ້າ unversioned.

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

--no-whole-archive
ປິດຜົນກະທົບຂອງ --ຮວບຮວມທັງໝົດ ທາງເລືອກສໍາລັບໄຟລ໌ທີ່ເກັບໄວ້ຕໍ່ໄປ.

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

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

-- ຮູບແບບ ຮູບ​ແບບ​ຜົນ​ຜະ​ລິດ​
ld ອາດ​ຈະ​ໄດ້​ຮັບ​ການ​ຕັ້ງ​ຄ່າ​ເພື່ອ​ສະ​ຫນັບ​ສະ​ຫນູນ​ຫຼາຍ​ກ​່​ວາ​ຫນຶ່ງ​ປະ​ເພດ​ຂອງ​ໄຟລ​໌​ວັດ​ຖຸ​. ຖ້າເຈົ້າ ld is
configured ດ້ວຍວິທີນີ້, ທ່ານສາມາດນໍາໃຊ້ -- ຮູບແບບ ທາງ​ເລືອກ​ທີ່​ຈະ​ລະ​ບຸ​ຮູບ​ແບບ​ຄູ່​ສໍາ​ລັບ​ການ​
ໄຟລ໌ວັດຖຸຜົນຜະລິດ. ເຖິງແມ່ນວ່າເວລາ ld ຖືກຕັ້ງຄ່າເພື່ອຮອງຮັບວັດຖຸທາງເລືອກ
ຮູບແບບ, ທ່ານບໍ່ຈໍາເປັນຕ້ອງກໍານົດນີ້, ເປັນ ld ຄວນຈະຖືກຕັ້ງຄ່າເພື່ອຜະລິດ
ເປັນຮູບແບບຜົນຜະລິດເລີ່ມຕົ້ນເປັນຮູບແບບປົກກະຕິທີ່ສຸດໃນແຕ່ລະເຄື່ອງ. ຮູບ​ແບບ​ຜົນ​ຜະ​ລິດ​ ເປັນ
ຂໍ້ຄວາມ, ຊື່ຂອງຮູບແບບສະເພາະທີ່ສະຫນັບສະຫນຸນໂດຍຫ້ອງສະຫມຸດ BFD. (ເຈົ້າ​ສາ​ມາດ
ລາຍຊື່ຮູບແບບຖານສອງທີ່ມີຢູ່ກັບ objdump -i.) ຄໍາສັ່ງ script
"OUTPUT_FORMAT" ຍັງສາມາດລະບຸຮູບແບບຜົນຜະລິດໄດ້, ແຕ່ທາງເລືອກນີ້ overrides ມັນ.

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

-qmagic
ຕົວເລືອກນີ້ຖືກລະເລີຍສໍາລັບຄວາມເຂົ້າກັນໄດ້ຂອງ Linux.

- ຖາມ ຕົວເລືອກນີ້ຖືກລະເລີຍສໍາລັບຄວາມເຂົ້າກັນໄດ້ຂອງ SVR4.

--ພັກຜ່ອນ
ທາງເລືອກທີ່ມີຜົນກະທົບທີ່ຂຶ້ນກັບເຄື່ອງຈັກ. ທາງ​ເລືອກ​ນີ້​ແມ່ນ​ສະ​ຫນັບ​ສະ​ຫນູນ​ພຽງ​ແຕ່​ໃນ​ຈໍາ​ນວນ​ຫນຶ່ງ​
ເປົ້າ ໝາຍ.

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

ໃນບາງເວທີການເຊື່ອມຕໍ່ເຫຼົ່ານີ້ການເພີ່ມປະສິດທິພາບທົ່ວໂລກອາດຈະເຮັດໃຫ້ການດີບັກສັນຍາລັກຂອງ
ຜົນໄດ້ຮັບການປະຕິບັດເປັນໄປບໍ່ໄດ້. ນີ້ແມ່ນເປັນທີ່ຮູ້ກັນວ່າເປັນກໍລະນີຂອງ Matsushita
ໂຮງງານຜະລິດໃນຄອບຄົວ MN10200 ແລະ MN10300.

ໃນເວທີທີ່ມັນບໍ່ໄດ້ຮັບການສະຫນັບສະຫນູນ, --ພັກຜ່ອນ ໄດ້ຮັບການຍອມຮັບ, ແຕ່ຖືກລະເລີຍ.

--retain-symbols-file ຊື່​ເອ​ກະ​ສານ
ຮັກສາ ພຽງແຕ່ ສັນຍາລັກທີ່ລະບຸໄວ້ໃນໄຟລ໌ ຊື່​ເອ​ກະ​ສານ, ຖິ້ມຄົນອື່ນທັງຫມົດ. ຊື່​ເອ​ກະ​ສານ
ແມ່ນພຽງແຕ່ໄຟລ໌ແປ, ມີສັນຍາລັກຫນຶ່ງຊື່ຕໍ່ແຖວ. ທາງເລືອກນີ້ແມ່ນໂດຍສະເພາະແມ່ນ
ມີປະໂຫຍດໃນສະພາບແວດລ້ອມ (ເຊັ່ນ: VxWorks) ບ່ອນທີ່ມີຕາຕະລາງສັນຍາລັກທົ່ວໂລກຂະຫນາດໃຫຍ່
ສະສົມເທື່ອລະກ້າວ, ເພື່ອຮັກສາຄວາມຊົງຈໍາໃນເວລາແລ່ນ.

--retain-symbols-file ບໍ່ ບໍ່ ຍົກເລີກສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດ, ຫຼືສັນຍາລັກທີ່ຈໍາເປັນສໍາລັບ
ການຍົກຍ້າຍ.

ທ່ານ​ພຽງ​ແຕ່​ອາດ​ຈະ​ລະ​ບຸ​ --retain-symbols-file ເມື່ອຢູ່ໃນເສັ້ນຄໍາສັ່ງ. ມັນ overrides -s
ແລະ -S.

-rpath dir
ເພີ່ມໄດເລກະທໍລີໃສ່ເສັ້ນທາງຄົ້ນຫາຫ້ອງສະຫມຸດ runtime. ອັນນີ້ໃຊ້ເມື່ອເຊື່ອມຕໍ່ ELF
ປະຕິບັດກັບວັດຖຸທີ່ໃຊ້ຮ່ວມກັນ. ທັງໝົດ -rpath ການໂຕ້ຖຽງແມ່ນ concatenated ແລະຜ່ານໄປ
ຕົວເຊື່ອມຕໍ່ເວລາແລ່ນ, ເຊິ່ງໃຊ້ພວກມັນເພື່ອຊອກຫາວັດຖຸທີ່ໃຊ້ຮ່ວມກັນໃນເວລາແລ່ນ. ໄດ້ -rpath
ທາງ​ເລືອກ​ຍັງ​ຖືກ​ນໍາ​ໃຊ້​ໃນ​ເວ​ລາ​ທີ່​ຊອກ​ຫາ​ວັດ​ຖຸ​ທີ່​ແບ່ງ​ປັນ​ທີ່​ຈໍາ​ເປັນ​ຕ້ອງ​ໂດຍ​ການ​ແບ່ງ​ປັນ​ວັດ​ຖຸ​
ລວມຢ່າງຈະແຈ້ງໃນການເຊື່ອມຕໍ່; ເບິ່ງລາຍລະອຽດຂອງ -rpath-link ທາງເລືອກ. ຖ້າ
-rpath ບໍ່ໄດ້ຖືກນໍາໃຊ້ໃນເວລາທີ່ເຊື່ອມຕໍ່ ELF ປະຕິບັດໄດ້, ເນື້ອໃນຂອງສະພາບແວດລ້ອມ
ຕົວແປ "LD_RUN_PATH" ຈະຖືກໃຊ້ຖ້າມັນຖືກກໍານົດ.

ໄດ້ -rpath ທາງເລືອກອາດຈະຖືກນໍາໃຊ້ໃນ SunOS. ໂດຍຄ່າເລີ່ມຕົ້ນ, ໃນ SunOS, ຕົວເຊື່ອມຕໍ່ຈະ
ປະກອບເປັນ patch ຄົ້ນຫາ runtime ອອກຈາກທັງຫມົດ -L ທາງເລືອກທີ່ມັນຖືກມອບໃຫ້. ຖ້າ ກ -rpath ທາງເລືອກ
ຖືກ​ນໍາ​ໃຊ້​, ເສັ້ນ​ທາງ​ການ​ຊອກ​ຫາ runtime ຈະ​ໄດ້​ຮັບ​ການ​ສ້າງ​ຕັ້ງ​ຂຶ້ນ​ສະ​ເພາະ​ແມ່ນ​ການ​ນໍາ​ໃຊ້​ -rpath ທາງເລືອກ,
ບໍ່ສົນໃຈ -L ທາງເລືອກ. ນີ້ສາມາດເປັນປະໂຫຍດໃນເວລາທີ່ໃຊ້ gcc, ເຊິ່ງເພີ່ມຈໍານວນຫຼາຍ -L
ທາງເລືອກທີ່ອາດຈະຢູ່ໃນລະບົບໄຟລ໌ທີ່ຕິດຕັ້ງ NFS.

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

-rpath-link DIR
ເມື່ອໃຊ້ ELF ຫຼື SunOS, ຫ້ອງສະໝຸດທີ່ແບ່ງປັນໜຶ່ງອາດຈະຕ້ອງການອີກບ່ອນໜຶ່ງ. ອັນນີ້ເກີດຂຶ້ນເມື່ອ
ລິ້ງ "ld -shared" ລວມມີຫ້ອງສະໝຸດທີ່ແບ່ງປັນເປັນໜຶ່ງໃນໄຟລ໌ປ້ອນຂໍ້ມູນ.

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

ທາງເລືອກນີ້ຄວນຈະຖືກນໍາໃຊ້ຢ່າງລະມັດລະວັງຍ້ອນວ່າມັນ overrides ເສັ້ນທາງຄົ້ນຫາທີ່ອາດຈະມີ
ໄດ້ຮັບການລວບລວມຍາກໃນຫ້ອງສະຫມຸດຮ່ວມກັນ. ໃນກໍລະນີດັ່ງກ່າວມັນເປັນໄປໄດ້ທີ່ຈະນໍາໃຊ້
ໂດຍບໍ່ໄດ້ຕັ້ງໃຈເປັນເສັ້ນທາງຄົ້ນຫາທີ່ແຕກຕ່າງຈາກຕົວເຊື່ອມຕໍ່ runtime ຈະເຮັດ.

ຕົວເຊື່ອມຕໍ່ໃຊ້ເສັ້ນທາງຄົ້ນຫາຕໍ່ໄປນີ້ເພື່ອຊອກຫາຫ້ອງສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນທີ່ຕ້ອງການ.

1. ໄດເລກະທໍລີໃດກໍານົດໂດຍ -rpath-link ຕົວເລືອກ

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

3. ໃນລະບົບ ELF, ຖ້າ -rpath ແລະຕົວເລືອກ "rpath-link" ບໍ່ໄດ້ຖືກນໍາໃຊ້, ຄົ້ນຫາ
ເນື້ອໃນຂອງຕົວແປສະພາບແວດລ້ອມ "LD_RUN_PATH". ມັນແມ່ນສໍາລັບຕົວເຊື່ອມຕໍ່ພື້ນເມືອງ
ເທົ່ານັ້ນ.

4. ໃນ SunOS, ຖ້າ ຫາກ ວ່າ -rpath ທາງ​ເລືອກ​ບໍ່​ໄດ້​ຖືກ​ນໍາ​ໃຊ້​, ຊອກ​ຫາ​ລະ​ບົບ​ທີ່​ລະ​ບຸ​ໄວ້​ໃດ​ຫນຶ່ງ​
ການນໍາໃຊ້ -L ຕົວເລືອກ

5. ສໍາລັບຕົວເຊື່ອມຕໍ່ພື້ນເມືອງ, ເນື້ອໃນຂອງຕົວແປສະພາບແວດລ້ອມ "LD_LIBRARY_PATH".

6. ສໍາລັບຕົວເຊື່ອມຕໍ່ ELF ພື້ນເມືອງ, ໄດເລກະທໍລີໃນ "DT_RUNPATH" ຫຼື "DT_RPATH" ຂອງການແບ່ງປັນ.
ຫ້ອງສະຫມຸດແມ່ນຊອກຫາຫ້ອງສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນທີ່ຕ້ອງການໂດຍມັນ. ລາຍການ "DT_RPATH" ແມ່ນ
ບໍ່ສົນໃຈຖ້າລາຍການ "DT_RUNPATH" ມີຢູ່.

7. ໄດເລກະທໍລີເລີ່ມຕົ້ນ, ປົກກະຕິ / lib ແລະ / usr / lib.

8. ສໍາລັບຕົວເຊື່ອມຕໍ່ພື້ນເມືອງໃນລະບົບ ELF, ຖ້າໄຟລ໌ /etc/ld.so.conf ມີຢູ່, ບັນຊີລາຍຊື່
ໄດເລກະທໍລີທີ່ພົບເຫັນຢູ່ໃນໄຟລ໌ນັ້ນ.

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

- ແບ່ງ​ປັນ​
- ສາມາດແບ່ງປັນໄດ້
ສ້າງຫ້ອງສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນ. ປະຈຸບັນນີ້ຮອງຮັບໃນ ELF, XCOFF ແລະ SunOS ເທົ່ານັ້ນ
ເວທີ. ໃນ SunOS, ຕົວເຊື່ອມຕໍ່ຈະສ້າງຫ້ອງສະຫມຸດທີ່ແບ່ງປັນໂດຍອັດຕະໂນມັດຖ້າຫາກວ່າ -e
ທາງເລືອກບໍ່ໄດ້ຖືກນໍາໃຊ້ແລະມີສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດຢູ່ໃນການເຊື່ອມຕໍ່.

--sort-ທົ່ວໄປ
ທາງເລືອກນີ້ບອກ ld ເພື່ອຈັດຮຽງສັນຍາລັກທົ່ວໄປໂດຍຂະຫນາດເມື່ອມັນວາງພວກມັນຢູ່ໃນ
ພາກສ່ວນຜົນຜະລິດທີ່ເຫມາະສົມ. ທໍາອິດມາທັງຫມົດສັນຍາລັກຫນຶ່ງ byte, ຫຼັງຈາກນັ້ນທັງສອງທັງຫມົດ
byte, ຫຼັງຈາກນັ້ນທັງຫມົດສີ່ byte, ແລະຫຼັງຈາກນັ້ນທຸກສິ່ງທຸກຢ່າງອື່ນ. ນີ້ແມ່ນເພື່ອປ້ອງກັນຊ່ອງຫວ່າງ
ລະຫວ່າງສັນຍາລັກເນື່ອງຈາກຂໍ້ຈໍາກັດການຈັດຕໍາແຫນ່ງ.

--sort-section ຊື່
ໂຕເລືອກນີ້ຈະນຳໃຊ້ "SORT_BY_NAME" ກັບທຸກຮູບແບບພາກສ່ວນຂອງ wildcard ໃນຕົວເຊື່ອມຕໍ່
script

--sort-section alignment
ໂຕເລືອກນີ້ຈະນຳໃຊ້ "SORT_BY_ALIGNMENT" ກັບທຸກຮູບແບບພາກສ່ວນສັນຍາລັກແທນໃນ
linker script.

--split-by-file [ຂະຫນາດ]
ຄ້າຍ​ຄື​ກັບ --split-by-reloc ແຕ່ສ້າງພາກສ່ວນຜົນຜະລິດໃຫມ່ສໍາລັບແຕ່ລະໄຟລ໌ປ້ອນຂໍ້ມູນໃນເວລາທີ່
ຂະຫນາດ ແມ່ນບັນລຸໄດ້. ຂະຫນາດ ຄ່າເລີ່ມຕົ້ນເປັນຂະຫນາດ 1 ຖ້າບໍ່ໃຫ້.

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

--ສະຖິຕິ
ຄິດໄລ່ແລະສະແດງສະຖິຕິກ່ຽວກັບການປະຕິບັດງານຂອງຕົວເຊື່ອມຕໍ່, ເຊັ່ນ: ການປະຕິບັດ
ການ​ນໍາ​ໃຊ້​ເວ​ລາ​ແລະ​ຄວາມ​ຊົງ​ຈໍາ​.

--sysroot=ລະບົບ
ການນໍາໃຊ້ ລະບົບ ເປັນສະຖານທີ່ຂອງ sysroot, overriding ຄ່າເລີ່ມຕົ້ນ configure-time.
ທາງເລືອກນີ້ແມ່ນສະຫນັບສະຫນູນໂດຍຕົວເຊື່ອມຕໍ່ທີ່ຖືກຕັ້ງຄ່າໂດຍໃຊ້ --with-sysroot.

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

ຕົວຢ່າງ, ໃນ SunOS, ld ລວມເອົາລາຍການທີ່ຊໍ້າກັນຢູ່ໃນຕາຕະລາງສະຕຣິງສັນຍາລັກ. ນີ້
ສາ​ມາດ​ຫຼຸດ​ຜ່ອນ​ຂະ​ຫນາດ​ຂອງ​ໄຟລ​໌​ຜົນ​ຜະ​ລິດ​ທີ່​ມີ​ຂໍ້​ມູນ​ດີ​ບັກ​ເຕັມ​ທີ່​ຫຼາຍ​ກວ່າ 30​
ເປີເຊັນ. ແຕ່ຫນ້າເສຍດາຍ, ໂຄງການ SunOS "dbx" ບໍ່ສາມາດອ່ານໂຄງການຜົນໄດ້ຮັບ
("gdb" ບໍ່ມີບັນຫາ). ໄດ້ -- ຮູບແບບພື້ນເມືອງ ສະຫຼັບບອກ ld ທີ່​ຈະ​ບໍ່​ປະ​ສົມ​
ລາຍການຊ້ຳກັນ.

--section-start ຊື່ພາກ=org
ຊອກຫາພາກສ່ວນໃນໄຟລ໌ຜົນຜະລິດຢູ່ທີ່ທີ່ຢູ່ຢ່າງແທ້ຈິງໃຫ້ໂດຍ org. ເຈົ້າອາດຈະໃຊ້
ຕົວເລືອກນີ້ຫຼາຍເທື່ອຕາມຄວາມຈໍາເປັນເພື່ອຊອກຫາຫຼາຍພາກສ່ວນໃນຄໍາສັ່ງ
ເສັ້ນ. org ຕ້ອງເປັນຈຳນວນທົດສະນິຍົມເລກສິບຫົກອັນດຽວ; ເພື່ອຄວາມເຂົ້າກັນໄດ້ກັບຕົວເຊື່ອມຕໍ່ອື່ນໆ,
ທ່ານ​ອາດ​ຈະ​ຍົກ​ເວັ້ນ​ການ​ນໍາ​ 0x ປົກກະຕິແລ້ວກ່ຽວຂ້ອງກັບຄ່າເລກຖານສິບຫົກ. ຫມາຍ​ເຫດ​: ມີ
ຄວນຈະບໍ່ມີຊ່ອງຫວ່າງລະຫວ່າງ ຊື່ພາກ, ເຄື່ອງໝາຍເທົ່າກັບ (``=''), ແລະ org.

-Tbss org
-Tdata org
-Ttext org
ຄືກັນກັບ --section-start, ກັບ ".bss", ".data" ຫຼື ".text" ເປັນ ຊື່ພາກ.

--unresolved-symbols=ວິທີການ
ກໍານົດວິທີການຈັດການກັບສັນຍາລັກທີ່ບໍ່ໄດ້ຮັບການແກ້ໄຂ. ມີສີ່ຄ່າທີ່ເປັນໄປໄດ້ສໍາລັບ
ວິທີການ:

ບໍ່ສົນໃຈທັງໝົດ
ຢ່າລາຍງານສັນຍາລັກທີ່ບໍ່ໄດ້ຮັບການແກ້ໄຂ.

ລາຍງານທັງໝົດ
ລາຍງານສັນຍາລັກທີ່ຍັງບໍ່ໄດ້ແກ້ໄຂທັງໝົດ. ນີ້ແມ່ນຄ່າເລີ່ມຕົ້ນ.

ignore-in-object-files
ລາຍງານສັນຍາລັກທີ່ບໍ່ໄດ້ຮັບການແກ້ໄຂທີ່ມີຢູ່ໃນຫ້ອງສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນ, ແຕ່ບໍ່ສົນໃຈພວກມັນ
ຖ້າພວກເຂົາມາຈາກໄຟລ໌ວັດຖຸປົກກະຕິ.

ignore-in-shared-libs
ລາຍງານສັນຍາລັກທີ່ບໍ່ໄດ້ຮັບການແກ້ໄຂທີ່ມາຈາກໄຟລ໌ວັດຖຸປົກກະຕິ, ແຕ່ບໍ່ສົນໃຈພວກມັນຖ້າ
ພວກເຂົາມາຈາກຫ້ອງສະຫມຸດຮ່ວມກັນ. ນີ້ສາມາດເປັນປະໂຫຍດໃນເວລາສ້າງແບບເຄື່ອນໄຫວ
binary ແລະມັນເປັນທີ່ຮູ້ຈັກວ່າຫ້ອງສະຫມຸດຮ່ວມກັນທັງຫມົດທີ່ມັນຄວນຈະເປັນການອ້າງອີງ
ແມ່ນລວມຢູ່ໃນເສັ້ນຄໍາສັ່ງຂອງຕົວເຊື່ອມຕໍ່.

ພຶດຕິກໍາສໍາລັບຫ້ອງສະຫມຸດຮ່ວມກັນດ້ວຍຕົນເອງຍັງສາມາດຖືກຄວບຄຸມໂດຍ
--[no-]allow-shlib-undefined ທາງເລືອກ.

ໂດຍປົກກະຕິຕົວເຊື່ອມຕໍ່ຈະສ້າງຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດສໍາລັບແຕ່ລະສັນຍາລັກທີ່ບໍ່ໄດ້ແກ້ໄຂລາຍງານ
ແຕ່ທາງເລືອກ --warn-unsolved-ສັນຍາລັກ ສາມາດປ່ຽນອັນນີ້ເປັນຄຳເຕືອນໄດ້.

--dll-verbose
-- verbose
ສະແດງໝາຍເລກເວີຊັນສຳລັບ ld ແລະລາຍຊື່ຕົວເຊື່ອມຕໍ່ຕົວເຊື່ອມຕໍ່ທີ່ຮອງຮັບ. ຈໍສະແດງຜົນ
ໄຟລ໌ໃດທີ່ປ້ອນເຂົ້າສາມາດ ແລະບໍ່ສາມາດເປີດໄດ້. ສະແດງສະຄຣິບຕົວເຊື່ອມຕໍ່ທີ່ຖືກນໍາໃຊ້ໂດຍ
ຕົວເຊື່ອມຕໍ່.

--version-script=version-scriptfile
ລະບຸຊື່ຂອງສະຄຣິບເວີຊັ່ນໃຫ້ກັບຕົວເຊື່ອມຕໍ່. ໂດຍທົ່ວໄປແລ້ວນີ້ແມ່ນໃຊ້ໃນເວລາທີ່
ການສ້າງຫ້ອງສະຫມຸດທີ່ໃຊ້ຮ່ວມກັນເພື່ອລະບຸຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບສະບັບ
ລໍາດັບຊັ້ນສໍາລັບຫ້ອງສະຫມຸດທີ່ກໍາລັງຖືກສ້າງຂື້ນ. ທາງເລືອກນີ້ມີຄວາມຫມາຍພຽງແຕ່ກ່ຽວກັບ ELF
ເວທີທີ່ສະຫນັບສະຫນູນຫ້ອງສະຫມຸດຮ່ວມກັນ.

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

ມີສາມປະເພດຂອງສັນຍາລັກຂອງໂລກ, ສະແດງຢູ່ທີ່ນີ້ໂດຍ C ຕົວຢ່າງ:

int i = 1;
ຄໍານິຍາມ, ເຊິ່ງໄປຢູ່ໃນພາກຂໍ້ມູນເບື້ອງຕົ້ນຂອງໄຟລ໌ຜົນຜະລິດ.

ພາຍນອກ int i;
ການອ້າງອີງທີ່ບໍ່ໄດ້ກໍານົດ, ເຊິ່ງບໍ່ໄດ້ຈັດສັນພື້ນທີ່. ຕ້ອງມີທັງ a
ຄໍານິຍາມຫຼືສັນຍາລັກທົ່ວໄປສໍາລັບຕົວແປບາງບ່ອນ.

int i;
ສັນຍາລັກທົ່ວໄປ. ຖ້າມີພຽງແຕ່ (ຫນຶ່ງຫຼືຫຼາຍກວ່າ) ສັນຍາລັກທົ່ວໄປສໍາລັບຕົວແປ,
ມັນໄປຢູ່ໃນພື້ນທີ່ຂໍ້ມູນ uninitialized ຂອງໄຟລ໌ຜົນຜະລິດ. ຕົວເຊື່ອມຕໍ່ເຂົ້າກັນ
ຫຼາຍສັນຍາລັກທົ່ວໄປສໍາລັບຕົວແປດຽວກັນເຂົ້າໄປໃນສັນຍາລັກດຽວ. ຖ້າພວກເຂົາແມ່ນ
ຂະຫນາດທີ່ແຕກຕ່າງກັນ, ມັນເລືອກເອົາຂະຫນາດທີ່ໃຫຍ່ທີ່ສຸດ. ຕົວເຊື່ອມຕໍ່ປ່ຽນເປັນສັນຍາລັກທົ່ວໄປ
ເຂົ້າໄປໃນການປະກາດ, ຖ້າມີຄໍານິຍາມຂອງຕົວແປດຽວກັນ.

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

1. ການປ່ຽນສັນຍາລັກທົ່ວໄປເປັນຄໍາອ້າງອີງ, ເພາະວ່າມີຄໍານິຍາມຢູ່ແລ້ວ
ສໍາ​ລັບ​ສັນ​ຍາ​ລັກ​.

( ): warning: common of ` '
overridden ໂດຍຄໍານິຍາມ
( ): ການເຕືອນໄພ: ກໍານົດຢູ່ທີ່ນີ້

2. ການປ່ຽນສັນຍາລັກທົ່ວໄປເຂົ້າໃນການອ້າງອີງ, ເນື່ອງຈາກວ່າຄໍານິຍາມຕໍ່ມາສໍາລັບ the
ສັນຍາລັກແມ່ນພົບ. ນີ້ແມ່ນຄືກັນກັບກໍລະນີທີ່ຜ່ານມາ, ຍົກເວັ້ນວ່າ
ສັນຍາລັກແມ່ນພົບໃນລໍາດັບທີ່ແຕກຕ່າງກັນ.

( ): warning: ຄໍານິຍາມຂອງ ` '
overriding ທົ່ວໄປ
( ): ການເຕືອນໄພ: ທົ່ວໄປແມ່ນຢູ່ທີ່ນີ້

3. ການລວມສັນຍາລັກທົ່ວໄປກັບສັນຍາລັກທົ່ວໄປທີ່ມີຂະຫນາດດຽວກັນກ່ອນຫນ້ານີ້.

( ): warning: multiple common
ຂອງ ` '
( ): ການ​ເຕືອນ​ໄພ​: ທົ່ວ​ໄປ​ກ່ອນ​ຫນ້າ​ນີ້​ແມ່ນ​ຢູ່​ທີ່​ນີ້​

4. ການລວມສັນຍາລັກທົ່ວໄປກັບສັນຍາລັກທົ່ວໄປທີ່ໃຫຍ່ກວ່າກ່ອນຫນ້ານີ້.

( ): warning: common of ` '
overridden ໂດຍທົ່ວໄປຂະຫນາດໃຫຍ່
( ): ການເຕືອນໄພ: ຂະຫນາດໃຫຍ່ທົ່ວໄປຢູ່ທີ່ນີ້

5. ການລວມສັນຍາລັກທົ່ວໄປກັບສັນຍາລັກທົ່ວໄປຂະຫນາດນ້ອຍກວ່າກ່ອນຫນ້ານີ້. ອັນນີ້ຄືກັນ
ເຊັ່ນດຽວກັບກໍລະນີທີ່ຜ່ານມາ, ຍົກເວັ້ນວ່າສັນຍາລັກແມ່ນພົບໃນທີ່ແຕກຕ່າງກັນ
order

( ): warning: common of ` '
overriding ຂະຫນາດນ້ອຍກວ່າທົ່ວໄປ
( ): ການເຕືອນໄພ: ນ້ອຍກວ່າທົ່ວໄປຢູ່ທີ່ນີ້

-- ເຕືອນຜູ້ກໍ່ສ້າງ
ເຕືອນຖ້າຜູ້ກໍ່ສ້າງທົ່ວໂລກຖືກໃຊ້. ນີ້ແມ່ນເປັນປະໂຫຍດພຽງແຕ່ສໍາລັບໄຟລ໌ວັດຖຸຈໍານວນຫນ້ອຍຫນຶ່ງ
ຮູບແບບ. ສໍາລັບຮູບແບບເຊັ່ນ COFF ຫຼື ELF, ຕົວເຊື່ອມຕໍ່ບໍ່ສາມາດກວດພົບການນໍາໃຊ້ທົ່ວໂລກ
ຜູ້ກໍ່ສ້າງ.

--warn-multiple-gp
ເຕືອນຖ້າມີຄ່າຕົວຊີ້ທົ່ວໂລກຫຼາຍຄ່າໃນໄຟລ໌ຜົນຜະລິດ. ນີ້ແມ່ນພຽງແຕ່
ມີຄວາມຫມາຍສໍາລັບໂປເຊດເຊີທີ່ແນ່ນອນ, ເຊັ່ນ Alpha. ໂດຍສະເພາະ, ບາງໂປເຊດເຊີ
ເອົາຄ່າຄົງທີ່ທີ່ມີຄ່າໃຫຍ່ຢູ່ໃນສ່ວນພິເສດ. ການລົງທະບຽນພິເສດ (ທົ່ວໂລກ
pointer) ຈຸດເຂົ້າໄປໃນພາກກາງຂອງພາກນີ້, ເພື່ອໃຫ້ຄົງທີ່ສາມາດໂຫລດໄດ້
ປະສິດທິພາບໂດຍຜ່ານຮູບແບບການລົງທະບຽນຖານທີ່ໃກ້ຄຽງ. ນັບ​ຕັ້ງ​ແຕ່​ການ​ຊົດ​ເຊີຍ​ໃນ​ຖານ
ຮູບ​ແບບ​ພີ່​ນ້ອງ​ລົງ​ທະ​ບຽນ​ແມ່ນ​ມີ​ການ​ສ້ອມ​ແຊມ​ແລະ​ຂ້ອນ​ຂ້າງ​ຂະ​ຫນາດ​ນ້ອຍ (eg, 16 bits), ນີ້​ຈໍາ​ກັດ​ການ
ຂະຫນາດສູງສຸດຂອງສະນຸກເກີຄົງທີ່. ດັ່ງນັ້ນ, ໃນໂຄງການຂະຫນາດໃຫຍ່, ມັນມັກຈະມີຄວາມຈໍາເປັນ
ໃຊ້ຄ່າຕົວຊີ້ທົ່ວໂລກຫຼາຍອັນເພື່ອໃຫ້ສາມາດແກ້ໄຂທີ່ເປັນໄປໄດ້ທັງໝົດ
ຄົງທີ່. ຕົວເລືອກນີ້ເຮັດໃຫ້ເກີດການເຕືອນໄພທຸກຄັ້ງທີ່ກໍລະນີນີ້ເກີດຂຶ້ນ.

-- ເຕືອນຄັ້ງດຽວ
ເຕືອນພຽງແຕ່ຄັ້ງດຽວສໍາລັບແຕ່ລະສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດ, ແທນທີ່ຈະກ່ວາຫນຶ່ງຄັ້ງຕໍ່ໂມດູນທີ່ຫມາຍເຖິງ
ມັນ.

--warn-section-align
ເຕືອນຖ້າທີ່ຢູ່ຂອງພາກສ່ວນຜົນຜະລິດຖືກປ່ຽນແປງເນື່ອງຈາກການຈັດຕໍາແຫນ່ງ. ໂດຍປົກກະຕິ,
ການຈັດວາງຈະຖືກກໍານົດໂດຍພາກສ່ວນປ້ອນຂໍ້ມູນ. ທີ່ຢູ່ຈະຖືກປ່ຽນພຽງແຕ່ຖ້າມັນ
ບໍ່ໄດ້ລະບຸຢ່າງຊັດເຈນ; ນັ້ນແມ່ນ, ຖ້າຄໍາສັ່ງ "SECTIONS" ບໍ່ໄດ້ກໍານົດການເລີ່ມຕົ້ນ
ທີ່ຢູ່ສໍາລັບພາກສ່ວນ.

--warn-shared-textrel
ເຕືອນຖ້າຕົວເຊື່ອມຕໍ່ເພີ່ມ DT_TEXTREL ໃສ່ວັດຖຸທີ່ໃຊ້ຮ່ວມກັນ.

--warn-unsolved-ສັນຍາລັກ
ຖ້າຕົວເຊື່ອມຕໍ່ຈະລາຍງານສັນຍາລັກທີ່ບໍ່ໄດ້ຮັບການແກ້ໄຂ (ເບິ່ງທາງເລືອກ
--unsolved-ສັນຍາລັກ) ມັນປົກກະຕິຈະສ້າງຄວາມຜິດພາດ. ທາງເລືອກນີ້ເຮັດໃຫ້ມັນ
ສ້າງການແຈ້ງເຕືອນແທນ.

--error-unresolved-ສັນຍາລັກ
ນີ້ຈະຟື້ນຟູພຶດຕິກໍາເລີ່ມຕົ້ນຂອງຕົວເຊື່ອມຕໍ່ໃນການສ້າງຄວາມຜິດພາດໃນເວລາທີ່ມັນກໍາລັງລາຍງານ
ສັນຍາລັກທີ່ບໍ່ໄດ້ຮັບການແກ້ໄຂ.

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

ສອງບັນທຶກເມື່ອໃຊ້ຕົວເລືອກນີ້ຈາກ gcc: ທໍາອິດ, gcc ບໍ່ຮູ້ກ່ຽວກັບທາງເລືອກນີ້,
ດັ່ງນັ້ນທ່ານຕ້ອງໃຊ້ -Wl,-ທັງໝົດ-ຮວບຮວມ. ອັນທີສອງ, ຢ່າລືມໃຊ້
-Wl,-no-whole-archive ຫຼັງ​ຈາກ​ບັນ​ຊີ​ລາຍ​ການ​ເກັບ​ຮັກ​ສາ​ຂອງ​ທ່ານ​, ເນື່ອງ​ຈາກ​ວ່າ gcc ຈະ​ເພີ່ມ​ລາຍ​ການ​ຂອງ​ຕົນ​ເອງ​
ຂອງການເກັບຮັກສາໄວ້ໃນການເຊື່ອມຕໍ່ຂອງທ່ານແລະທ່ານອາດຈະບໍ່ຢາກໃຫ້ທຸງນີ້ມີຜົນກະທົບເຫຼົ່ານັ້ນເຊັ່ນດຽວກັນ.

--ຫໍ່ ສັນຍາລັກ
ໃຊ້ຟັງຊັນ wrapper ສໍາລັບ ສັນຍາລັກ. ການອ້າງອິງທີ່ບໍ່ໄດ້ກໍານົດໃດໆກ່ຽວກັບ ສັນຍາລັກ ຈະຖືກແກ້ໄຂ
ເຖິງ "__wrap_ສັນ​ຍາ​ລັກ". ການອ້າງອິງທີ່ບໍ່ໄດ້ກໍານົດໃດໆກັບ "__real_ສັນ​ຍາ​ລັກ" ຈະ​ໄດ້​ຮັບ​ການ​ແກ້​ໄຂ​ເພື່ອ​
ສັນຍາລັກ.

ນີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອສະຫນອງ wrapper ສໍາລັບການເຮັດວຽກຂອງລະບົບ. ຟັງຊັນ wrapper
ຄວນເອີ້ນວ່າ "__wrap_ສັນ​ຍາ​ລັກ". ຖ້າມັນຕ້ອງການໂທຫາຫນ້າທີ່ລະບົບ, ມັນຄວນຈະ
ໂທຫາ "__ຈິງ_ສັນ​ຍາ​ລັກ".

ນີ້ແມ່ນຕົວຢ່າງເລັກນ້ອຍ:

ໂມຄະ *
__wrap_malloc (size_t c)
{
printf ("malloc ເອີ້ນດ້ວຍ %zu\n", c);
ກັບຄືນ __real_malloc (c);
}

ຖ້າທ່ານເຊື່ອມຕໍ່ລະຫັດອື່ນກັບໄຟລ໌ນີ້ໂດຍໃຊ້ --ຫໍ່ ສູນການຄ້າ, ຫຼັງຈາກນັ້ນທັງຫມົດໂທຫາ "malloc"
ຈະເອີ້ນຟັງຊັນ "__wrap_malloc" ແທນ. ການໂທຫາ "__real_malloc" ໃນ
"__wrap_malloc" ຈະເອີ້ນຟັງຊັນ "malloc" ທີ່ແທ້ຈິງ.

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

--enable-new-dtags
--disable-new-dtags
ຕົວເຊື່ອມຕໍ່ນີ້ສາມາດສ້າງແທໍກແບບເຄື່ອນໄຫວໃຫມ່ໃນ ELF. ແຕ່ລະບົບ ELF ເກົ່າອາດຈະບໍ່
ເຂົ້າໃຈເຂົາເຈົ້າ. ຖ້າທ່ານລະບຸ --enable-new-dtags, tags ແບບເຄື່ອນໄຫວຈະຖືກສ້າງຂຶ້ນ
ຕາມຄວາມຕ້ອງການ. ຖ້າທ່ານລະບຸ --disable-new-dtags, ບໍ່ມີແທັກແບບເຄື່ອນໄຫວໃຫມ່ຈະຖືກສ້າງຂຶ້ນ.
ຕາມຄ່າເລີ່ມຕົ້ນ, ແທັກແບບໄດນາມິກໃໝ່ບໍ່ໄດ້ຖືກສ້າງ. ໃຫ້ສັງເກດວ່າທາງເລືອກເຫຼົ່ານັ້ນແມ່ນພຽງແຕ່
ມີໃຫ້ສໍາລັບລະບົບ ELF.

--hash-size=ຈໍານວນ
ກໍານົດຂະຫນາດເລີ່ມຕົ້ນຂອງຕາຕະລາງ hash ຂອງ linker ເປັນຕົວເລກຕົ້ນຕໍຢູ່ໃກ້ກັບ ຈໍານວນ.
ການເພີ່ມມູນຄ່ານີ້ສາມາດຫຼຸດຜ່ອນໄລຍະເວລາທີ່ມັນໃຊ້ຕົວເຊື່ອມຕໍ່ເພື່ອປະຕິບັດຂອງມັນ
ວຽກງານ, ໃນຄ່າໃຊ້ຈ່າຍຂອງການເພີ່ມຄວາມຕ້ອງການຄວາມຊົງຈໍາຂອງ linker ໄດ້. ເຊັ່ນດຽວກັນ
ການຫຼຸດຜ່ອນມູນຄ່ານີ້ສາມາດຫຼຸດຜ່ອນຄວາມຕ້ອງການຫນ່ວຍຄວາມຈໍາໃນຄ່າໃຊ້ຈ່າຍຂອງຄວາມໄວ.

--reduce-memory-overheads
ທາງເລືອກນີ້ຫຼຸດຜ່ອນຄວາມຕ້ອງການຫນ່ວຍຄວາມຈໍາໃນ ld runtime, ໃນຄ່າໃຊ້ຈ່າຍຂອງການເຊື່ອມຕໍ່
ຄວາມໄວ. ອັນນີ້ຖືກແນະນຳເພື່ອເລືອກວິທີເກົ່າ O(n^2) ສຳລັບໄຟລ໌ແຜນທີ່ລິ້ງ
ການຜະລິດ, ແທນທີ່ຈະເປັນ O(n) algorithm ໃຫມ່ທີ່ນໍາໃຊ້ປະມານ 40% ຫນ່ວຍຄວາມຈໍາເພີ່ມເຕີມສໍາລັບ
ການເກັບຮັກສາສັນຍາລັກ.

ຜົນກະທົບອີກອັນຫນຶ່ງຂອງສະວິດແມ່ນກໍານົດຂະຫນາດຕາຕະລາງ hash ເລີ່ມຕົ້ນເປັນ 1021, ເຊິ່ງ
ອີກເທື່ອຫນຶ່ງຊ່ວຍປະຢັດຫນ່ວຍຄວາມຈໍາໃນຄ່າໃຊ້ຈ່າຍຂອງ lengthening ເວລາດໍາເນີນການຂອງຕົວເຊື່ອມຕໍ່. ນີ້ບໍ່ໄດ້ເຮັດ
ຢ່າງໃດກໍຕາມຖ້າຫາກວ່າ --hash-size ສະ​ຫຼັບ​ໄດ້​ຖືກ​ນໍາ​ໃຊ້​.

ໄດ້ --reduce-memory-overheads ສະຫຼັບອາດຈະຖືກໃຊ້ເພື່ອເປີດໃຊ້ງານການຄ້າອື່ນໆໃນ
ຮຸ່ນໃນອະນາຄົດຂອງຕົວເຊື່ອມຕໍ່.

ຕົວເຊື່ອມຕໍ່ i386 PE ສະຫນັບສະຫນູນ - ແບ່ງ​ປັນ​ ທາງເລືອກ, ເຊິ່ງເຮັດໃຫ້ຜົນຜະລິດເປັນ
ຫໍສະຫມຸດເຊື່ອມຕໍ່ແບບໄດນາມິກ (DLL) ແທນທີ່ຈະເປັນການປະຕິບັດປົກກະຕິ. ທ່ານຄວນຕັ້ງຊື່
ຜົນຜະລິດ "*.dll" ເມື່ອທ່ານໃຊ້ຕົວເລືອກນີ້. ນອກຈາກນັ້ນ, ຕົວເຊື່ອມຕໍ່ສະຫນັບສະຫນູນຢ່າງເຕັມສ່ວນ
ໄຟລ໌ "*.def" ມາດຕະຖານ, ເຊິ່ງອາດຈະຖືກລະບຸໄວ້ໃນເສັ້ນຄໍາສັ່ງຂອງຕົວເຊື່ອມຕໍ່ເຊັ່ນວັດຖຸ
file (ໃນ​ຄວາມ​ເປັນ​ຈິງ​, ມັນ​ຄວນ​ຈະ​ກ່ອນ​ການ​ເກັບ​ຮັກ​ສາ​ມັນ​ສົ່ງ​ອອກ​ສັນ​ຍາ​ລັກ​ຈາກ​, ເພື່ອ​ຮັບ​ປະ​ກັນ​ວ່າ​ພວກ​ເຂົາ​ເຈົ້າ​ໄດ້​ຮັບ​
ເຊື່ອມຕໍ່ໃນ, ຄືກັນກັບໄຟລ໌ວັດຖຸປົກກະຕິ).

ນອກເຫນືອໄປຈາກທາງເລືອກທົ່ວໄປສໍາລັບເປົ້າຫມາຍທັງຫມົດ, ຕົວເຊື່ອມຕໍ່ i386 PE ສະຫນັບສະຫນູນເພີ່ມເຕີມ
ຕົວເລືອກເສັ້ນຄໍາສັ່ງທີ່ສະເພາະກັບເປົ້າຫມາຍ i386 PE. ຕົວເລືອກທີ່ເອົາຄ່າ
ອາດຈະຖືກແຍກອອກຈາກຄຸນຄ່າຂອງພວກມັນໂດຍຊ່ອງຫວ່າງ ຫຼືເຄື່ອງໝາຍເທົ່າກັບ.

--add-stdcall-alias
ຖ້າໃຫ້, ສັນຍາລັກທີ່ມີສ່ວນທ້າຍ stdcall (@nn) ຈະ​ຖືກ​ສົ່ງ​ອອກ​ຕາມ​ທີ່​ເປັນ​ແລະ​ຍັງ​ມີ​
ສ່ວນທ້າຍຖືກຖອດອອກ. [ຕົວເລືອກນີ້ແມ່ນສະເພາະກັບພອດເປົ້າໝາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

--base-file ເອກະສານ
ການນໍາໃຊ້ ເອກະສານ ເປັນຊື່ຂອງໄຟລ໌ທີ່ຈະບັນທຶກທີ່ຢູ່ພື້ນຖານຂອງທັງຫມົດ
ການຍົກຍ້າຍທີ່ຈໍາເປັນສໍາລັບການສ້າງ DLLs ກັບ dlltool. [ນີ້ແມ່ນ i386 PE ສະເພາະ
ທາງເລືອກ]

--dll
ສ້າງ DLL ແທນທີ່ຈະເປັນການປະຕິບັດປົກກະຕິ. ເຈົ້າອາດຈະໃຊ້ເຊັ່ນກັນ - ແບ່ງ​ປັນ​ ຫຼືລະບຸ ກ
"LIBRARY" ໃນໄຟລ໌ ".def" ທີ່ໃຫ້. [ທາງເລືອກນີ້ແມ່ນສະເພາະກັບ i386 PE ເປົ້າຫມາຍ
ທ່າເຮືອເຊື່ອມຕໍ່]

--enable-stdcall-fixup
--disable-stdcall-fixup
ຖ້າການເຊື່ອມຕໍ່ພົບສັນຍາລັກທີ່ມັນບໍ່ສາມາດແກ້ໄຂໄດ້, ມັນຈະພະຍາຍາມເຮັດ `` fuzzy
linking'' ໂດຍຊອກຫາສັນຍາລັກທີ່ກໍານົດອື່ນທີ່ແຕກຕ່າງພຽງແຕ່ໃນຮູບແບບຂອງ
ຊື່ສັນຍາລັກ (cdecl vs stdcall) ແລະຈະແກ້ໄຂສັນຍາລັກນັ້ນໂດຍການເຊື່ອມຕໍ່ກັບການຈັບຄູ່.
ຕົວຢ່າງ, ສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດ "_foo" ອາດຈະເຊື່ອມຕໍ່ກັບຟັງຊັນ "_foo@12", ຫຼື.
ສັນຍາລັກທີ່ບໍ່ໄດ້ກໍານົດ "_bar@16" ອາດຈະເຊື່ອມຕໍ່ກັບຟັງຊັນ "_bar". ໃນ​ເວ​ລາ​ທີ່
linker ເຮັດສິ່ງນີ້, ມັນພິມຄໍາເຕືອນ, ເນື່ອງຈາກວ່າມັນປົກກະຕິແລ້ວມັນຄວນຈະລົ້ມເຫລວໃນການເຊື່ອມຕໍ່,
ແຕ່ບາງຄັ້ງການນໍາເຂົ້າຫ້ອງສະຫມຸດທີ່ສ້າງຂຶ້ນຈາກ dlls ພາກສ່ວນທີສາມອາດຈະຕ້ອງການຄຸນນະສົມບັດນີ້
ສາມາດໃຊ້ໄດ້. ຖ້າທ່ານລະບຸ --enable-stdcall-fixup, ຄຸນນະສົມບັດນີ້ຖືກເປີດໃຊ້ຢ່າງເຕັມສ່ວນ
ແລະຄໍາເຕືອນບໍ່ໄດ້ພິມອອກ. ຖ້າທ່ານລະບຸ --disable-stdcall-fixup, ຄຸນນະສົມບັດນີ້ແມ່ນ
ຄົນພິການແລະຄວາມບໍ່ກົງກັນດັ່ງກ່າວຖືວ່າເປັນຄວາມຜິດພາດ. [ທາງເລືອກນີ້ແມ່ນສະເພາະ
ທ່າເຮືອເປົ້າໝາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

--ສົ່ງອອກ-ທັງໝົດ-ສັນຍາລັກ
ຖ້າໃຫ້, ສັນຍາລັກທົ່ວໂລກໃນວັດຖຸທີ່ໃຊ້ໃນການສ້າງ DLL ຈະຖືກສົ່ງອອກໂດຍ
DLL. ຈື່ໄວ້ວ່ານີ້ແມ່ນຄ່າເລີ່ມຕົ້ນ ຖ້າບໍ່ດັ່ງນັ້ນຈະບໍ່ມີການສົ່ງອອກໃດໆ
ສັນຍາລັກ. ເມື່ອສັນຍາລັກຖືກສົ່ງອອກຢ່າງຈະແຈ້ງຜ່ານໄຟລ໌ DEF ຫຼືສົ່ງອອກ implicitly
ຜ່ານຄຸນສົມບັດຂອງຟັງຊັນ, ຄ່າເລີ່ມຕົ້ນແມ່ນຈະບໍ່ສົ່ງອອກອັນອື່ນເວັ້ນເສຍແຕ່ທາງເລືອກນີ້
ແມ່ນໃຫ້. ໃຫ້ສັງເກດວ່າສັນຍາລັກ "DllMain@12", "DllEntryPoint@0",
"DllMainCRTStartup@12", ແລະ "impure_ptr" ຈະບໍ່ຖືກສົ່ງອອກໂດຍອັດຕະໂນມັດ. ນອກຈາກນີ້,
ສັນ​ຍາ​ລັກ​ທີ່​ນໍາ​ເຂົ້າ​ມາ​ຈາກ DLLs ອື່ນໆ​ຈະ​ບໍ່​ໄດ້​ຮັບ​ການ​ສົ່ງ​ອອກ​ຄືນ​ໃຫມ່, ແລະ​ຈະ​ບໍ່​ມີ​ສັນ​ຍາ​ລັກ​ລະ​ບຸ
ຮູບແບບພາຍໃນຂອງ DLL ເຊັ່ນທີ່ເລີ່ມຕົ້ນດ້ວຍ "_head_" ຫຼືລົງທ້າຍດ້ວຍ
"_iname". ນອກຈາກນັ້ນ, ບໍ່ມີສັນຍາລັກຈາກ "libgcc", "libstd++", "libmingw32", ຫຼື
"crtX.o" ຈະຖືກສົ່ງອອກ. ສັນຍາລັກທີ່ມີຊື່ເລີ່ມຕົ້ນດ້ວຍ "__rtti_" ຫຼື "__builtin_"
ຈະບໍ່ຖືກສົ່ງອອກ, ເພື່ອຊ່ວຍໃຫ້ມີ C++ DLLs. ສຸດທ້າຍ, ມີບັນຊີລາຍຊື່ຢ່າງກວ້າງຂວາງຂອງ
cygwin-private ສັນຍາລັກທີ່ບໍ່ໄດ້ສົ່ງອອກ (ແນ່ນອນ, ນີ້ໃຊ້ໃນເວລາທີ່ການກໍ່ສ້າງ
DLLs ສໍາລັບເປົ້າຫມາຍ cygwin). cygwin-excludes ເຫຼົ່ານີ້ແມ່ນ: "_cygwin_dll_entry@12",
"_cygwin_crt0_common@8", "_cygwin_noncygwin_dll_entry@12", "_fmode", "_impure_ptr",
"cygwin_attach_dll", "cygwin_premain0", "cygwin_premain1", "cygwin_premain2",
"cygwin_premain3", ແລະ "ສະພາບແວດລ້ອມ". [ທາງເລືອກນີ້ແມ່ນສະເພາະກັບ i386 PE ເປົ້າຫມາຍ
ທ່າເຮືອເຊື່ອມຕໍ່]

--exclude-ສັນຍາລັກ ສັນຍາລັກ,ສັນຍາລັກ...
ລະບຸລາຍຊື່ຂອງສັນຍາລັກທີ່ບໍ່ຄວນຈະຖືກສົ່ງອອກໂດຍອັດຕະໂນມັດ. ສັນຍາລັກ
ຊື່ອາດຈະຖືກຈຳກັດດ້ວຍເຄື່ອງໝາຍຈຸດ ຫຼືຈໍ້າສອງເມັດ. [ຕົວເລືອກນີ້ແມ່ນສະເພາະກັບ i386 PE
ພອດເປົ້າຫມາຍຂອງຕົວເຊື່ອມຕໍ່]

--ການຈັດຮຽງໄຟລ໌
ລະບຸການຈັດຮຽງໄຟລ໌. ພາກສ່ວນຕ່າງໆໃນໄຟລ໌ຈະເລີ່ມຕົ້ນຢູ່ທີ່ການຊົດເຊີຍໄຟລ໌ສະເໝີ
ຊຶ່ງເປັນຕົວຄູນຂອງຕົວເລກນີ້. ນີ້ຄ່າເລີ່ມຕົ້ນເປັນ 512. [ຕົວເລືອກນີ້ແມ່ນສະເພາະ
ກັບພອດເປົ້າຫມາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

--heap reserve
--heap reserve,ຄໍາຫມັ້ນສັນຍາ
ລະບຸຈໍານວນຫນ່ວຍຄວາມຈໍາທີ່ຈະສະຫງວນ (ແລະທາງເລືອກຄໍາຫມັ້ນສັນຍາ) ທີ່ຈະນໍາໃຊ້ເປັນ heap ສໍາລັບ
ໂຄງ​ການ​ນີ້​. ຄ່າເລີ່ມຕົ້ນແມ່ນ 1Mb ສະຫງວນ, 4K ຫມັ້ນສັນຍາ. [ທາງເລືອກນີ້ແມ່ນສະເພາະ
ທ່າເຮືອເປົ້າໝາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

--ຮູບ-ຖານ ມູນຄ່າ
ການນໍາໃຊ້ ມູນຄ່າ ເປັນທີ່ຢູ່ພື້ນຖານຂອງໂຄງການຫຼື dll ຂອງທ່ານ. ນີ້ແມ່ນຄວາມຊົງຈໍາຕ່ໍາສຸດ
ສະຖານທີ່ທີ່ຈະຖືກນໍາໃຊ້ໃນເວລາທີ່ໂຄງການຫຼື dll ຂອງທ່ານຖືກໂຫລດ. ເພື່ອຫຼຸດຜ່ອນຄວາມຕ້ອງການ
ການຍົກຍ້າຍແລະປັບປຸງການປະຕິບັດຂອງ dlls ຂອງທ່ານ, ແຕ່ລະຄົນຄວນມີທີ່ຢູ່ພື້ນຖານທີ່ເປັນເອກະລັກ
ແລະບໍ່ທັບຊ້ອນ dll ອື່ນໆ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 0x400000 ສໍາລັບການປະຕິບັດ, ແລະ
0x10000000 ສໍາລັບ dlls. [ທາງ​ເລືອກ​ນີ້​ແມ່ນ​ສະ​ເພາະ​ກັບ i386 PE ເປົ້າ​ຫມາຍ​ພອດ​ຂອງ​
ຕົວເຊື່ອມຕໍ່]

--ຂ້າ
ຖ້າໃຫ້, stdcall ຕໍ່ທ້າຍ (@nn) ຈະຖືກລອກອອກຈາກສັນຍາລັກກ່ອນທີ່ມັນຈະມີ
ສົ່ງອອກ. [ຕົວເລືອກນີ້ແມ່ນສະເພາະກັບພອດເປົ້າໝາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

--large-address-aware
ຖ້າໃຫ້, ບິດທີ່ເຫມາະສົມໃນພາກສະຫນາມ ``Charateistics' ຂອງສ່ວນຫົວ COFF ແມ່ນ
ກໍານົດເພື່ອຊີ້ບອກວ່າການດໍາເນີນການນີ້ສະຫນັບສະຫນູນທີ່ຢູ່ virtual ຫຼາຍກ່ວາ 2
gigabytes. ອັນນີ້ຄວນໃຊ້ຮ່ວມກັບ /3GB ຫຼື /USERVA=ມູນຄ່າ megabytes
ສະຫຼັບຢູ່ໃນພາກ ``[ລະບົບປະຕິບັດການ]'' ຂອງ BOOT.INI. ຖ້າບໍ່ດັ່ງນັ້ນ, ນີ້ເລັກນ້ອຍ
ບໍ່ມີຜົນກະທົບ. [ຕົວເລືອກນີ້ແມ່ນສະເພາະກັບພອດເປົ້າໝາຍ PE ຂອງຕົວເຊື່ອມຕໍ່]

--major-image-version ມູນຄ່າ
ກໍານົດຕົວເລກທີ່ສໍາຄັນຂອງ `` ຮຸ່ນຮູບພາບ ''. Defaults to 1. [ຕົວເລືອກນີ້ແມ່ນ
ສະເພາະກັບພອດເປົ້າໝາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

--major-os-version ມູນຄ່າ
ກໍານົດຕົວເລກທີ່ສໍາຄັນຂອງ `` ລຸ້ນ os ''. ຄ່າເລີ່ມຕົ້ນເປັນ 4. [ຕົວເລືອກນີ້ແມ່ນສະເພາະ
ກັບພອດເປົ້າຫມາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

--major-subsystem-version ມູນຄ່າ
ກໍານົດຕົວເລກທີ່ສໍາຄັນຂອງ ``ຮຸ່ນລະບົບຍ່ອຍ´. Defaults ກັບ 4. [ຕົວເລືອກນີ້ແມ່ນ
ສະເພາະກັບພອດເປົ້າໝາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

--minor-image-version ມູນຄ່າ
ກໍານົດຕົວເລກເລັກນ້ອຍຂອງ `` ຮຸ່ນຮູບພາບ ''. ຄ່າເລີ່ມຕົ້ນເປັນ 0. [ຕົວເລືອກນີ້ແມ່ນ
ສະເພາະກັບພອດເປົ້າໝາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

--minor-os-version ມູນຄ່າ
ກໍານົດຕົວເລກເລັກນ້ອຍຂອງ ``ລຸ້ນ os''. ຄ່າເລີ່ມຕົ້ນເປັນ 0. [ຕົວເລືອກນີ້ແມ່ນສະເພາະ
ກັບພອດເປົ້າຫມາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

--minor-subsystem-version ມູນຄ່າ
ກໍານົດຕົວເລກເລັກນ້ອຍຂອງ `` ຮຸ່ນລະບົບຍ່ອຍ ''. ຄ່າເລີ່ມຕົ້ນເປັນ 0. [ຕົວເລືອກນີ້ແມ່ນ
ສະເພາະກັບພອດເປົ້າໝາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

--output-def ເອກະສານ
ຕົວເຊື່ອມຕໍ່ຈະສ້າງໄຟລ໌ ເອກະສານ ເຊິ່ງຈະມີໄຟລ໌ DEF ທີ່ສອດຄ້ອງກັບ
DLL ທີ່ຕົວເຊື່ອມຕໍ່ກໍາລັງສ້າງ. ໄຟລ໌ DEF ນີ້ (ທີ່ຄວນຈະເອີ້ນວ່າ "*.def") ອາດຈະ
ຖືກນໍາໃຊ້ເພື່ອສ້າງຫ້ອງສະຫມຸດນໍາເຂົ້າດ້ວຍ "dlltool" ຫຼືອາດຈະຖືກນໍາໃຊ້ເປັນເອກະສານອ້າງອີງ
ອັດຕະໂນມັດ ຫຼືສັນຍາລັກທີ່ສົ່ງອອກ implicitly. [ຕົວເລືອກນີ້ແມ່ນສະເພາະກັບ i386 PE
ພອດເປົ້າຫມາຍຂອງຕົວເຊື່ອມຕໍ່]

--out-implib ເອກະສານ
ຕົວເຊື່ອມຕໍ່ຈະສ້າງໄຟລ໌ ເອກະສານ ເຊິ່ງຈະມີ lib ນໍາເຂົ້າທີ່ສອດຄ້ອງກັນ
DLL ທີ່ຕົວເຊື່ອມຕໍ່ກໍາລັງສ້າງ. ນີ້ lib ການນໍາເຂົ້າ (ທີ່ຄວນຈະເອີ້ນວ່າ "*.dll.a" ຫຼື
"*.a" ອາດຈະຖືກນໍາໃຊ້ເພື່ອເຊື່ອມຕໍ່ລູກຄ້າຕໍ່ກັບ DLL ທີ່ສ້າງຂຶ້ນ; ພຶດຕິກໍານີ້ເຮັດໃຫ້ມັນ
ເປັນໄປໄດ້ທີ່ຈະຂ້າມຂັ້ນຕອນການສ້າງຫ້ອງສະຫມຸດນໍາເຂົ້າ "dlltool" ແຍກຕ່າງຫາກ. [ທາງເລືອກນີ້ແມ່ນ
ສະເພາະກັບພອດເປົ້າໝາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

--enable-auto-image-base
ເລືອກພື້ນຖານຮູບພາບສໍາລັບ DLLs ໂດຍອັດຕະໂນມັດ, ເວັ້ນເສຍແຕ່ວ່າຫນຶ່ງຈະຖືກລະບຸໂດຍໃຊ້
"--image-base" argument. ໂດຍໃຊ້ hash ທີ່ສ້າງຂຶ້ນຈາກ dllname ເພື່ອສ້າງເອກະລັກ
ພື້ນ​ຖານ​ຮູບ​ພາບ​ສໍາ​ລັບ​ແຕ່​ລະ DLL​, collisions ໃນ​ຫນ່ວຍ​ຄວາມ​ຈໍາ​ແລະ​ການ​ຍ້າຍ​ທີ່​ສາ​ມາດ​ຊັກ​ຊ້າ​ໂຄງ​ການ​
ການ​ປະ​ຕິ​ບັດ​ແມ່ນ​ຫຼີກ​ເວັ້ນ​ການ​. [ທາງ​ເລືອກ​ນີ້​ແມ່ນ​ສະ​ເພາະ​ກັບ i386 PE ເປົ້າ​ຫມາຍ​ພອດ​ຂອງ​
ຕົວເຊື່ອມຕໍ່]

--disable-auto-image-base
ຢ່າສ້າງພື້ນຖານຮູບພາບທີ່ເປັນເອກະລັກໂດຍອັດຕະໂນມັດ. ຖ້າບໍ່ມີຜູ້ໃຊ້ທີ່ລະບຸ
ພື້ນຖານຮູບພາບ ("--image-base") ຫຼັງຈາກນັ້ນນໍາໃຊ້ມາດຕະຖານຂອງເວທີ. [ທາງເລືອກນີ້ແມ່ນສະເພາະ
ກັບພອດເປົ້າຫມາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

--dll-search-prefix string
ເມື່ອເຊື່ອມຕໍ່ແບບເຄື່ອນໄຫວກັບ dll ໂດຍບໍ່ມີຫ້ອງສະຫມຸດນໍາເຂົ້າ, ຄົ້ນຫາ
" .dll" ໃນການຕັ້ງຄ່າ "lib .dll" ພຶດຕິກໍານີ້ອະນຸຍາດໃຫ້
ຄວາມແຕກຕ່າງທີ່ງ່າຍດາຍລະຫວ່າງ DLLs ທີ່ສ້າງຂຶ້ນສໍາລັບ "ເວທີຍ່ອຍ" ຕ່າງໆ: native, cygwin,
uwin, pw, ແລະອື່ນໆ. ຕົວຢ່າງເຊັ່ນ, cygwin DLLs ປົກກະຕິແລ້ວໃຊ້ "--dll-search-prefix=cyg".
[ຕົວເລືອກນີ້ແມ່ນສະເພາະກັບພອດເປົ້າໝາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

--enable-auto-import
ເຮັດການເຊື່ອມໂຍງທີ່ຊັບຊ້ອນຂອງ "_symbol" ກັບ "__imp__symbol" ສໍາລັບການນໍາເຂົ້າ DATA ຈາກ DLLs,
ແລະສ້າງສັນຍາລັກ thunking ທີ່ຈໍາເປັນໃນເວລາທີ່ການກໍ່ສ້າງຫ້ອງສະຫມຸດນໍາເຂົ້າກັບ
ການສົ່ງອອກຂໍ້ມູນເຫຼົ່ານັ້ນ. ຫມາຍເຫດ: ການນໍາໃຊ້ສ່ວນຂະຫຍາຍ 'ການນໍາເຂົ້າອັດຕະໂນມັດ' ຈະເຮັດໃຫ້ຂໍ້ຄວາມ
ພາກສ່ວນຂອງໄຟລ໌ຮູບພາບທີ່ຈະຂຽນໄດ້. ອັນນີ້ບໍ່ສອດຄ່ອງກັບ PE-COFF
ສະເພາະຮູບແບບທີ່ເຜີຍແຜ່ໂດຍ Microsoft.

ການນໍາໃຊ້ 'ການນໍາເຂົ້າອັດຕະໂນມັດ' ໂດຍທົ່ວໄປຈະ 'ພຽງແຕ່ເຮັດວຽກ' - ແຕ່ບາງຄັ້ງທ່ານອາດຈະເຫັນສິ່ງນີ້
ຂໍ້ຄວາມ:

"ຕົວແປ ' 'ບໍ່ສາມາດຖືກນໍາເຂົ້າອັດຕະໂນມັດ. ກະລຸນາອ່ານເອກະສານສໍາລັບ ld's.
"--enable-auto-import" ສໍາລັບລາຍລະອຽດ."

ຂໍ້ຄວາມນີ້ເກີດຂຶ້ນເມື່ອບາງສະແດງອອກ (ຍ່ອຍ) ເຂົ້າເຖິງທີ່ຢູ່ທີ່ມອບໃຫ້ໃນທີ່ສຸດ
ຜົນລວມຂອງສອງຄົງທີ່ (ຕາຕະລາງການນໍາເຂົ້າ Win32 ພຽງແຕ່ອະນຸຍາດໃຫ້ຫນຶ່ງ). ກໍລະນີນີ້
ອາດ​ຈະ​ເກີດ​ຂຶ້ນ​ລວມ​ເຖິງ​ການ​ເຂົ້າ​ເຖິງ​ພາກ​ສະ​ຫນາມ​ສະ​ມາ​ຊິກ​ຂອງ​ຕົວ​ແປ​ໂຄງ​ສ້າງ​ທີ່​ນໍາ​ເຂົ້າ​ມາ​ຈາກ DLL​,
ເຊັ່ນດຽວກັນກັບການນໍາໃຊ້ດັດສະນີຄົງທີ່ເຂົ້າໄປໃນຕົວແປ array ທີ່ນໍາເຂົ້າຈາກ DLL. ໃດ
ຕົວແປຫຼາຍຄໍາ (ອາເຣ, ໂຄງສ້າງ, ຍາວຍາວ, ແລະອື່ນໆ) ອາດຈະເຮັດໃຫ້ເກີດຄວາມຜິດພາດນີ້.
ຢ່າງໃດກໍ່ຕາມ, ໂດຍບໍ່ຄໍານຶງເຖິງປະເພດຂອງຂໍ້ມູນທີ່ແນ່ນອນຂອງຕົວແປທີ່ສົ່ງອອກທີ່ຜິດ, ld ຈະ
ກວດຫາມັນສະເໝີ, ອອກຄຳເຕືອນ, ແລະອອກ.

ມີຫຼາຍວິທີເພື່ອແກ້ໄຂຄວາມຫຍຸ້ງຍາກນີ້, ບໍ່ວ່າຈະເປັນຂໍ້ມູນປະເພດໃດ
ຕົວແປທີ່ສົ່ງອອກ:

ວິທີຫນຶ່ງແມ່ນການໃຊ້ --enable-runtime-pseudo-reloc switch. ນີ້ເຮັດໃຫ້ວຽກງານຂອງ
ປັບການອ້າງອີງໃນລະຫັດລູກຄ້າຂອງທ່ານສໍາລັບສະພາບແວດລ້ອມ runtime, ດັ່ງນັ້ນວິທີການນີ້ເຮັດວຽກ
ພຽງແຕ່ໃນເວລາທີ່ສະພາບແວດລ້ອມ runtime ສະຫນັບສະຫນູນຄຸນນະສົມບັດນີ້.

ການແກ້ໄຂທີສອງແມ່ນການບັງຄັບໃຫ້ຫນຶ່ງຂອງ 'ຄົງທີ່' ເປັນຕົວແປ - ນັ້ນແມ່ນ,
ບໍ່ຮູ້ຈັກ ແລະບໍ່ສາມາດປັບແຕ່ງໄດ້ໃນເວລາລວບລວມ. ສໍາລັບ arrays, ມີສອງຄວາມເປັນໄປໄດ້:
a) ເຮັດໃຫ້ indexee (ທີ່ຢູ່ຂອງ array) ເປັນຕົວແປ, ຫຼື b) ເຮັດໃຫ້ດັດຊະນີ 'ຄົງທີ່'
ຕົວແປ. ດັ່ງນັ້ນ:

ປະເພດ extern extern_array[];
extern_array[1] -->
{ ປະເພດການຜັນຜວນ *t=extern_array; t[1] }

or

ປະເພດ extern extern_array[];
extern_array[1] -->
{ volatile int t=1; extern_array[t] }

ສໍາລັບໂຄງສ້າງ (ແລະປະເພດຂໍ້ມູນຫຼາຍຄໍາອື່ນໆ) ທາງເລືອກດຽວແມ່ນເພື່ອເຮັດໃຫ້
ໂຄງສ້າງຕົວຂອງມັນເອງ (ຫຼືຍາວຍາວ, ຫຼື ...) ຕົວແປ:

extern struct s extern_struct;
extern_struct.field -->
{ ໂຄງສ້າງທີ່ປ່ຽນແປງໄດ້ s *t=&extern_struct; t->ພາກສະຫນາມ }

or

extern long long extern_ll ;
extern_ll -->
{ ຍາວທີ່ປ່ຽນແປງໄດ້ * local_ll=&extern_ll; *local_ll }

ວິທີການທີສາມຂອງການຈັດການກັບຄວາມຫຍຸ້ງຍາກນີ້ແມ່ນການປະຖິ້ມ 'ການນໍາເຂົ້າອັດຕະໂນມັດ' ສໍາລັບ
ສັນ​ຍາ​ລັກ​ທີ່​ກະ​ທໍາ​ຜິດ​ແລະ​ຫມາຍ​ມັນ​ດ້ວຍ "__declspec(dllimport​)​"​. ຢ່າງໃດກໍຕາມ, ໃນທາງປະຕິບັດ
ຮຽກຮ້ອງໃຫ້ມີການລວບລວມເວລາ #define ເພື່ອຊີ້ບອກວ່າທ່ານກໍາລັງສ້າງ DLL,
ການສ້າງລະຫັດລູກຄ້າທີ່ຈະເຊື່ອມຕໍ່ກັບ DLL, ຫຼືພຽງແຕ່ການກໍ່ສ້າງ / ເຊື່ອມຕໍ່ກັບ static
ຫໍສະໝຸດ. ໃນ​ການ​ເຮັດ​ໃຫ້​ທາງ​ເລືອກ​ລະ​ຫວ່າງ​ວິ​ທີ​ການ​ຕ່າງໆ​ຂອງ​ການ​ແກ້​ໄຂ​ໂດຍ​ກົງ '
ແກ້ໄຂບັນຫາການຊົດເຊີຍຄົງທີ່, ທ່ານຄວນພິຈາລະນາການນໍາໃຊ້ຕົວຈິງທົ່ວໄປ:

ຕົ້ນສະບັບ:

--foo.h
extern int arr[];
--foo.c
#ລວມທັງ "foo.h"
void main(int argc, char **argv){
printf("%d\n",arr[1]);
}

Solution 1:

--foo.h
extern int arr[];
--foo.c
#ລວມທັງ "foo.h"
void main(int argc, char **argv){
/* ການແກ້ໄຂນີ້ແມ່ນສໍາລັບ win32 ແລະ cygwin; ຢ່າ "ເພີ່ມປະສິດທິພາບ" */
volatile int *parr = arr;
printf("%d\n",parr[1]);
}

Solution 2:

--foo.h
/* ໝາຍເຫດ: ການສົ່ງອອກອັດຕະໂນມັດແມ່ນຖືວ່າ (ບໍ່ມີ __declspec(dllexport)) */
#if (ກຳນົດ(_WIN32) ⎪⎪ ກຳນົດ(__CYGWIN__)) && \
!(ກຳນົດ(FOO_BUILD_DLL) ⎪⎪ ກຳນົດ(FOO_STATIC))
#ກຳນົດ FOO_IMPORT __declspec(dllimport)
#ອື່ນ
#ກຳນົດ FOO_IMPORT
#ສຸດທ້າຍ
extern FOO_IMPORT int arr[];
--foo.c
#ລວມທັງ "foo.h"
void main(int argc, char **argv){
printf("%d\n",arr[1]);
}

ວິທີທີສີ່ເພື່ອຫຼີກລ່ຽງບັນຫານີ້ແມ່ນໃຫ້ລະຫັດຫ້ອງສະໝຸດຂອງເຈົ້າຄືນໃໝ່ເພື່ອໃຊ້ສິ່ງທີ່ມີປະໂຫຍດ
ການໂຕ້ຕອບແທນທີ່ຈະເປັນການໂຕ້ຕອບຂໍ້ມູນສໍາລັບຕົວແປທີ່ລະເມີດ (ຕົວຢ່າງ set_foo() ແລະ
get_foo() ຫນ້າ​ທີ່​ຂອງ​ການ​ເຂົ້າ​ເຖິງ​)​. [ທາງເລືອກນີ້ແມ່ນສະເພາະກັບພອດເປົ້າຫມາຍ i386 PE
ຂອງຕົວເຊື່ອມຕໍ່]

--disable-auto-import
ຢ່າພະຍາຍາມເຮັດການເຊື່ອມໂຍງທີ່ຊັບຊ້ອນຂອງ "_symbol" ກັບ "__imp__symbol" ສໍາລັບ DATA
ນໍາເຂົ້າຈາກ DLLs. [ທາງ​ເລືອກ​ນີ້​ແມ່ນ​ສະ​ເພາະ​ກັບ i386 PE ເປົ້າ​ຫມາຍ​ພອດ​ຂອງ​
ຕົວເຊື່ອມຕໍ່]

--enable-runtime-pseudo-reloc
ຖ້າລະຫັດຂອງທ່ານປະກອບດ້ວຍການສະແດງອອກທີ່ອະທິບາຍໄວ້ໃນສ່ວນ --enable-auto-import, ນັ້ນແມ່ນ,
DATA ນໍາເຂົ້າຈາກ DLL ດ້ວຍການຊົດເຊີຍທີ່ບໍ່ແມ່ນສູນ, ສະຫຼັບນີ້ຈະສ້າງ vector ຂອງ
'ການຍົກຍ້າຍ pseudo runtime' ເຊິ່ງສາມາດຖືກນໍາໃຊ້ໂດຍສະພາບແວດລ້ອມ runtime ເພື່ອປັບ
ການອ້າງອີງເຖິງຂໍ້ມູນດັ່ງກ່າວໃນລະຫັດລູກຄ້າຂອງທ່ານ. [ຕົວເລືອກນີ້ແມ່ນສະເພາະກັບ i386 PE
ພອດເປົ້າຫມາຍຂອງຕົວເຊື່ອມຕໍ່]

--disable-runtime-pseudo-reloc
ຢ່າສ້າງການຍົກຍ້າຍ pseudo ສໍາລັບການນໍາເຂົ້າ DATA ທີ່ບໍ່ແມ່ນສູນຈາກ DLLs. ນີ້​ແມ່ນ
ຄ່າເລີ່ມຕົ້ນ. [ຕົວເລືອກນີ້ແມ່ນສະເພາະກັບພອດເປົ້າໝາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

--enable-extra-pe-debug
ສະ​ແດງ​ຂໍ້​ມູນ​ດີ​ບັກ​ເພີ່ມ​ເຕີມ​ກ່ຽວ​ກັບ​ການ​ນໍາ​ເຂົ້າ​ອັດ​ຕະ​ໂນ​ມັດ​ສັນ​ຍາ​ລັກ thunking​. [ທາງເລືອກນີ້ແມ່ນ
ສະເພາະກັບພອດເປົ້າໝາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

--section-alignment
ກໍານົດການຈັດລໍາດັບພາກສ່ວນ. ພາກສ່ວນຕ່າງໆໃນໜ່ວຍຄວາມຈຳຈະເລີ່ມຕົ້ນຢູ່ບ່ອນຢູ່ສະເໝີ
ເປັນຕົວຄູນຂອງຕົວເລກນີ້. ຄ່າເລີ່ມຕົ້ນເປັນ 0x1000. [ທາງເລືອກນີ້ແມ່ນສະເພາະກັບ
i386 PE ເປົ້າຫມາຍພອດຂອງຕົວເຊື່ອມຕໍ່]

-- stack reserve
-- stack reserve,ຄໍາຫມັ້ນສັນຍາ
ລະບຸຈໍານວນຫນ່ວຍຄວາມຈໍາທີ່ຈະສະຫງວນ (ແລະທາງເລືອກຄໍາຫມັ້ນສັນຍາ) ທີ່ຈະນໍາໃຊ້ເປັນ stack
ສໍາລັບໂຄງການນີ້. ຄ່າເລີ່ມຕົ້ນແມ່ນສະຫງວນໄວ້ 2Mb, 4K ຫມັ້ນສັນຍາ. [ທາງເລືອກນີ້ແມ່ນ
ສະເພາະກັບພອດເປົ້າໝາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

-- ລະບົບຍ່ອຍ ທີ່
-- ລະບົບຍ່ອຍ ທີ່:ທີ່ສໍາຄັນ
-- ລະບົບຍ່ອຍ ທີ່:ທີ່ສໍາຄັນ.ເລັກນ້ອຍ
ລະບຸລະບົບຍ່ອຍທີ່ໂຄງການຂອງເຈົ້າຈະປະຕິບັດ. ຄຸນຄ່າທາງກົດໝາຍສຳລັບ
ທີ່ ແມ່ນ "native", "windows", "console", "posix", ແລະ "xbox". ເຈົ້າອາດຈະຕັ້ງທາງເລືອກ
ສະບັບລະບົບຍ່ອຍ. ຄ່າຕົວເລກຍັງຖືກຍອມຮັບ ທີ່. [ທາງ​ເລືອກ​ນີ້​
ແມ່ນສະເພາະກັບພອດເປົ້າຫມາຍ i386 PE ຂອງຕົວເຊື່ອມຕໍ່]

ຕົວເຊື່ອມຕໍ່ 68HC11 ແລະ 68HC12 ສະຫນັບສະຫນູນທາງເລືອກສະເພາະເພື່ອຄວບຄຸມທະນາຄານຫນ່ວຍຄວາມຈໍາ
ສະຫຼັບການສ້າງແຜນທີ່ ແລະການສ້າງລະຫັດ trampoline.

-- ບໍ່ມີ trampoline
ຕົວເລືອກນີ້ປິດການຜະລິດ trampoline. ໂດຍຄ່າເລີ່ມຕົ້ນ trampoline ແມ່ນ
ສ້າງຂຶ້ນສໍາລັບແຕ່ລະຫນ້າທີ່ຫ່າງໄກເຊິ່ງເອີ້ນວ່າການນໍາໃຊ້ຄໍາແນະນໍາ "jsr" (ນີ້
ເກີດຂຶ້ນເມື່ອຕົວຊີ້ໄປຫາຫນ້າທີ່ໄກຖືກປະຕິບັດ).

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

ENVIRONMENT


ທ່ານສາມາດປ່ຽນພຶດຕິກໍາຂອງ ld ກັບຕົວແປສະພາບແວດລ້ອມ "GNUTARGET",
"LDEMULATION" ແລະ "COLLECT_NO_DEMANGLE".

"GNUTARGET" ກໍານົດຮູບແບບວັດຖຸໄຟລ໌ທີ່ປ້ອນເຂົ້າຖ້າທ່ານບໍ່ໃຊ້ -b (ຫຼືຄໍາສັບຄ້າຍຄືຂອງມັນ
-- ຮູບແບບ). ຄ່າຂອງມັນຄວນຈະເປັນໜຶ່ງໃນຊື່ BFD ສໍາລັບຮູບແບບການປ້ອນຂໍ້ມູນ. ຖ້າບໍ່ມີ
"GNUTARGET" ໃນສະພາບແວດລ້ອມ, ld ໃຊ້ຮູບແບບທໍາມະຊາດຂອງເປົ້າຫມາຍ. ຖ້າ "GNUTARGET"
ຖືກຕັ້ງເປັນ "ຄ່າເລີ່ມຕົ້ນ" ຫຼັງຈາກນັ້ນ BFD ພະຍາຍາມຄົ້ນພົບຮູບແບບການປ້ອນຂໍ້ມູນໂດຍການກວດເບິ່ງຖານສອງ
ໄຟລ໌ປ້ອນຂໍ້ມູນ; ວິທີການນີ້ມັກຈະປະສົບຜົນສໍາເລັດ, ແຕ່ມີທ່າແຮງທີ່ບໍ່ຊັດເຈນ, ນັບຕັ້ງແຕ່ນັ້ນມາ
ບໍ່ແມ່ນວິທີການຮັບປະກັນວ່າຕົວເລກ magic ທີ່ໃຊ້ເພື່ອລະບຸຮູບແບບຂອງ object-file
ເປັນເອກະລັກ. ຢ່າງໃດກໍ່ຕາມ, ຂັ້ນຕອນການຕັ້ງຄ່າສໍາລັບ BFD ໃນແຕ່ລະລະບົບວາງໄວ້
ຮູບແບບທໍາມະດາສໍາລັບລະບົບນັ້ນທໍາອິດໃນລາຍການຄົ້ນຫາ, ດັ່ງນັ້ນຄວາມບໍ່ແນ່ນອນຈະຖືກແກ້ໄຂ
ໃນເງື່ອນໄຂຂອງສົນທິສັນຍາ.

"LDEMULATION" ກໍານົດການຈໍາລອງເລີ່ມຕົ້ນຖ້າທ່ານບໍ່ໃຊ້ -m ທາງເລືອກ. ທ
emulation ສາມາດສົ່ງຜົນກະທົບຕໍ່ລັກສະນະຕ່າງໆຂອງພຶດຕິກໍາຕົວເຊື່ອມຕໍ່, ໂດຍສະເພາະຕົວເຊື່ອມຕໍ່ເລີ່ມຕົ້ນ
ສະຄຣິບ. ທ່ານ​ສາ​ມາດ​ບັນ​ຊີ​ລາຍ​ການ emulations ທີ່​ມີ​ຢູ່​ກັບ​ -- verbose or -V ທາງເລືອກ. ຖ້າ
-m ທາງເລືອກບໍ່ໄດ້ຖືກນໍາໃຊ້, ແລະຕົວແປສະພາບແວດລ້ອມ "LDEMULATION" ບໍ່ໄດ້ຖືກກໍານົດ, the
emulation ເລີ່ມຕົ້ນແມ່ນຂຶ້ນກັບວິທີການ linker ໄດ້ຖືກ configured.

ໂດຍປົກກະຕິ, ຕົວເຊື່ອມຕໍ່ຈະເລີ່ມຕົ້ນເພື່ອ demangling ສັນຍາລັກ. ຢ່າງໃດກໍຕາມ, ຖ້າ
"COLLECT_NO_DEMANGLE" ຖືກຕັ້ງໄວ້ໃນສະພາບແວດລ້ອມ, ຈາກນັ້ນມັນຈະເປັນຄ່າເລີ່ມຕົ້ນທີ່ຈະບໍ່ demangling.
ສັນຍາລັກ. ຕົວແປສະພາບແວດລ້ອມນີ້ຖືກໃຊ້ໃນແບບທີ່ຄ້າຍຄືກັນໂດຍຕົວເຊື່ອມຕໍ່ "gcc".
ໂຄງ​ການ wrapper​. ຄ່າເລີ່ມຕົ້ນອາດຈະຖືກ overridden ໂດຍ --ທໍາລາຍ ແລະ -- ບໍ່​ມີ​ການ​ຂັດ​ຂວາງ​
ຕົວເລືອກ

ໃຊ້ h8300-hms-ld ອອນໄລນ໌ໂດຍໃຊ້ການບໍລິການ onworks.net


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

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

  • 1
    DivFix ++
    DivFix ++
    DivFix++ ແມ່ນ​ການ​ສ້ອມ​ແປງ​ວິ​ດີ​ໂອ AVI ຂອງ​ທ່ານ​ແລະ​
    ຊອບ​ແວ​ສະ​ແດງ​ຕົວ​ຢ່າງ​. ມັນຖືກອອກແບບມາສໍາລັບການສ້ອມແປງ
    ແລະເບິ່ງຕົວຢ່າງໄຟລ໌ທີ່ກໍາລັງດາວໂຫຼດຢູ່
    ຈາກ ed2k(emule), torrent, gnutella, ftp...
    ດາວໂຫລດ DivFix++
  • 2
    ຊຸມຊົນ JBoss
    ຊຸມຊົນ JBoss
    ໂຄງ​ການ​ພັດ​ທະ​ນາ​ຂອງ​ຊຸມ​ຊົນ​ທີ່​ມີ​
    ນະວັດຕະກໍາຫລ້າສຸດສໍາລັບການຕັດແຂບ
    ແອັບ. ໂຄງການ flagship ຂອງພວກເຮົາ JBoss AS ແມ່ນ
    ແຫຼ່ງເປີດຊັ້ນນໍາ,
    ໄດ້​ມາດ​ຕະ​ຖານ ...
    ດາວໂຫລດ JBoss Community
  • 3
    Django Filer
    Django Filer
    django Filer ເປັນການຈັດການໄຟລ໌
    ຄໍາຮ້ອງສະຫມັກສໍາລັບ django ທີ່ເຮັດໃຫ້
    ການ​ຈັດ​ການ​ໄຟລ​໌​ແລະ​ຮູບ​ພາບ​ເປັນ​ລົມ​.
    django-filer ແມ່ນການຈັດການໄຟລ໌
    ຄໍາຮ້ອງສະຫມັກສໍາລັບ djang ...
    ດາວໂຫລດ Django Filer
  • 4
    xCAT
    xCAT
    Extreme Cluster Administration Toolkit.
    xCAT ແມ່ນການຈັດການກຸ່ມທີ່ສາມາດຂະຫຍາຍໄດ້
    ແລະເຄື່ອງມືການຈັດຫາທີ່ສະຫນອງ
    ການຄວບຄຸມຮາດແວ, ການຄົ້ນພົບ, ແລະ OS
    diskful/di...
    ດາວໂຫລດ xCAT
  • 5
    Psi
    Psi
    Psi ແມ່ນ XMPP ທີ່ມີປະສິດທິພາບຂ້າມເວທີ
    ລູກຄ້າອອກແບບມາສໍາລັບຜູ້ໃຊ້ທີ່ມີປະສົບການ.
    ມີການກໍ່ສ້າງທີ່ມີຢູ່ສໍາລັບ MS
    Windows, GNU/Linux ແລະ macOS.. ຜູ້ຊົມ:
    ຜູ້ໃຊ້ສຸດທ້າຍ...
    ດາວໂຫລດ Psi
  • 6
    Blobby Volley 2
    Blobby Volley 2
    ການສືບຕໍ່ຢ່າງເປັນທາງການຂອງຊື່ສຽງ
    ເກມອາເຄດ Blobby Volley 1.x..
    ຜູ້ຊົມ: ຜູ້ໃຊ້ສຸດທ້າຍ/ເດັສທັອບ. ຜູ້ໃຊ້
    ການໂຕ້ຕອບ: OpenGL, SDL. ການຂຽນໂປລແກລມ
    ພາສາ: C++, Lua. ຄ...
    ດາວໂຫລດ Blobby Volley 2
  • ເພີ່ມເຕີມ »

Linux ຄຳ ສັ່ງ

Ad