EnglishFrenchGermanItalianPortugueseRussianSpanish

ไอคอน Fav ของ OnWorks

mips-linux-gnu-ld - ออนไลน์ใน Cloud

เรียกใช้ mips-linux-gnu-ld ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง mips-linux-gnu-ld ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


ld - ตัวเชื่อมโยง GNU

เรื่องย่อ


แอลดี [ตัวเลือก] objfile ...

DESCRIPTION


ld รวมไฟล์อ็อบเจ็กต์และไฟล์เก็บถาวรจำนวนหนึ่ง ย้ายข้อมูลและเชื่อมโยงสัญลักษณ์
ข้อมูลอ้างอิง โดยปกติขั้นตอนสุดท้ายในการคอมไพล์โปรแกรมคือการรัน ld.

ld ยอมรับไฟล์ภาษาคำสั่ง Linker ที่เขียนใน superset ของ Link Editor ของ AT&T
ไวยากรณ์ภาษาคำสั่ง เพื่อให้การควบคุมกระบวนการเชื่อมโยงที่ชัดเจนและสมบูรณ์

หน้านี้ไม่ได้อธิบายภาษาคำสั่ง เห็น ld ป้อนข้อมูลใน "ข้อมูล" แบบเต็ม
รายละเอียดเกี่ยวกับภาษาคำสั่งและด้านอื่นๆ ของตัวเชื่อมโยง GNU

รุ่นนี้ ld ใช้ไลบรารี BFD วัตถุประสงค์ทั่วไปเพื่อดำเนินการกับไฟล์อ็อบเจ็กต์ นี้
ช่วยให้ ld เพื่ออ่าน รวม และเขียนไฟล์อ็อบเจ็กต์ในรูปแบบต่างๆ มากมาย---สำหรับ
เช่น COFF หรือ "a.out" รูปแบบที่แตกต่างกันอาจเชื่อมโยงกันเพื่อผลิตใด ๆ
ชนิดของไฟล์อ็อบเจ็กต์ที่มีอยู่

นอกเหนือจากความยืดหยุ่นแล้ว ตัวเชื่อมโยง GNU ยังมีประโยชน์มากกว่าตัวเชื่อมโยงอื่นๆ ในการจัดหา
ข้อมูลการวินิจฉัย ผู้เชื่อมโยงหลายคนละทิ้งการดำเนินการทันทีเมื่อพบ an
ข้อผิดพลาด; เมื่อใดก็ตามที่เป็นไปได้ ld ดำเนินการต่อไป ทำให้คุณสามารถระบุข้อผิดพลาดอื่นๆ ได้
(หรือในบางกรณี เพื่อรับไฟล์เอาต์พุตทั้งๆ ที่มีข้อผิดพลาด)

ตัวเชื่อมโยง GNU ld มีขึ้นเพื่อให้ครอบคลุมหลากหลายสถานการณ์และเพื่อให้เข้ากันได้
ให้มากที่สุดกับตัวเชื่อมโยงอื่นๆ เป็นผลให้คุณมีทางเลือกมากมายในการควบคุม
พฤติกรรม

OPTIONS


ตัวเชื่อมโยงรองรับตัวเลือกบรรทัดคำสั่งมากมาย แต่ในทางปฏิบัติจริงมีเพียงไม่กี่ตัวเลือก
ใช้ในบริบทใดโดยเฉพาะ ตัวอย่างเช่น การใช้ . บ่อยครั้ง ld คือการเชื่อมโยง
ไฟล์อ็อบเจ็กต์ Unix มาตรฐานบนระบบ Unix ที่รองรับมาตรฐาน ในระบบดังกล่าว ถึง
เชื่อมโยงไฟล์ "hello.o":

ฉันทำ /lib/crt0.o สวัสดี.o -lc

นี้บอก ld เพื่อสร้างไฟล์ชื่อ เอาท์พุต อันเป็นผลมาจากการเชื่อมโยงไฟล์
"/lib/crt0.o" กับ "hello.o" และไลบรารี่ "libc.a" ซึ่งจะมาจากมาตรฐาน
ค้นหาไดเรกทอรี (ดูการอภิปรายของ -l ตัวเลือกด้านล่าง)

ตัวเลือกบรรทัดคำสั่งบางตัวเพื่อ ld อาจระบุ ณ จุดใดก็ได้ในบรรทัดคำสั่ง
อย่างไรก็ตาม ตัวเลือกที่อ้างถึงไฟล์ เช่น -l or -T, ทำให้ไฟล์ถูกอ่านที่ the
จุดที่ตัวเลือกปรากฏในบรรทัดคำสั่ง สัมพันธ์กับไฟล์อ็อบเจ็กต์และ
ตัวเลือกไฟล์อื่นๆ การทำซ้ำตัวเลือกที่ไม่ใช่ไฟล์ด้วยอาร์กิวเมนต์อื่นจะมี
ไม่มีผลกระทบเพิ่มเติมหรือแทนที่เหตุการณ์ก่อนหน้า (ที่อยู่ทางด้านซ้ายบนคำสั่ง
บรรทัด) ของตัวเลือกนั้น ตัวเลือกที่อาจระบุความหมายได้มากกว่าหนึ่งครั้งคือ
ระบุไว้ในคำอธิบายด้านล่าง

อาร์กิวเมนต์ที่ไม่ใช่ตัวเลือกคือไฟล์อ็อบเจ็กต์หรือไฟล์เก็บถาวรที่จะเชื่อมโยงเข้าด้วยกัน พวกเขา
อาจทำตาม นำหน้า หรือผสมกับตัวเลือกบรรทัดคำสั่ง ยกเว้นไฟล์อ็อบเจ็กต์
ไม่สามารถวางอาร์กิวเมนต์ระหว่างตัวเลือกและอาร์กิวเมนต์ได้

โดยปกติ linker จะถูกเรียกใช้ด้วยไฟล์อ็อบเจ็กต์อย่างน้อยหนึ่งไฟล์ แต่คุณสามารถระบุ other
รูปแบบของไฟล์อินพุตไบนารีโดยใช้ -l, -Rและภาษาคำสั่งสคริปต์ ถ้า ไม่ ไบนารี
มีการระบุไฟล์อินพุตเลย ตัวเชื่อมโยงไม่สร้างเอาต์พุตใด ๆ และออก
ข่าวสาร ไม่ อินพุต ไฟล์.

หากตัวเชื่อมโยงไม่รู้จักรูปแบบของไฟล์อ็อบเจ็กต์ มันจะถือว่ามันเป็น
สคริปต์ตัวเชื่อมโยง สคริปต์ที่ระบุในลักษณะนี้จะเสริมสคริปต์ตัวเชื่อมโยงหลักที่ใช้สำหรับ
ลิงค์ (ทั้งสคริปต์ตัวเชื่อมโยงเริ่มต้นหรือที่ระบุโดยใช้ -T) นี้
คุณสมบัติอนุญาตให้ตัวเชื่อมโยงเชื่อมโยงกับไฟล์ที่ดูเหมือนจะเป็นวัตถุหรือ
เก็บถาวร แต่จริง ๆ แล้วเพียงกำหนดค่าสัญลักษณ์บางอย่างหรือใช้ "INPUT" หรือ "GROUP" to
โหลดวัตถุอื่นๆ การระบุสคริปต์ในลักษณะนี้เป็นเพียงการเพิ่มตัวเชื่อมโยงหลัก
สคริปต์ โดยมีคำสั่งพิเศษวางไว้หลังสคริปต์หลัก ใช้ -T ตัวเลือกที่จะแทนที่
สคริปต์ตัวเชื่อมโยงเริ่มต้นทั้งหมด แต่ให้สังเกตผลของคำสั่ง "INSERT"

สำหรับตัวเลือกที่มีชื่อเป็นตัวอักษรเดี่ยว อาร์กิวเมนต์ของตัวเลือกต้องเป็นไปตาม
จดหมายตัวเลือกโดยไม่ต้องเว้นวรรคหรือกำหนดให้เป็นอาร์กิวเมนต์แยกกัน
ตามตัวเลือกที่ต้องการทันที

สำหรับตัวเลือกที่มีชื่อหลายตัวอักษร หนึ่งขีดหรือสองสามารถอยู่ข้างหน้า
ชื่อตัวเลือก; ตัวอย่างเช่น, -ร่องรอย-สัญลักษณ์ และ --trace-สัญลักษณ์ มีค่าเท่ากัน หมายเหตุ---นั่น
เป็นข้อยกเว้นประการหนึ่งสำหรับกฎนี้ ตัวเลือกตัวอักษรหลายตัวที่ขึ้นต้นด้วยตัวพิมพ์เล็ก 'o'
นำหน้าด้วยขีดกลางสองอันเท่านั้น ทั้งนี้เพื่อลดความสับสนกับ -o ตัวเลือก. ดังนั้น
เช่น -omagic ตั้งชื่อไฟล์เอาต์พุตเป็น มายากล แต่ทว่า --omagic ตั้งค่า NMAGIC
ตั้งค่าสถานะบนเอาต์พุต

อาร์กิวเมนต์ของตัวเลือกหลายตัวอักษรต้องแยกจากชื่อตัวเลือกด้วย an
เท่ากับเครื่องหมายหรือกำหนดให้เป็นอาร์กิวเมนต์แยกกันทันทีตามตัวเลือกที่
ต้องการพวกเขา ตัวอย่างเช่น, --trace-สัญลักษณ์ foo และ --trace-symbol=foo เทียบเท่า
ยอมรับตัวย่อที่ไม่ซ้ำกันของชื่อตัวเลือกหลายตัวอักษร

หมายเหตุ---หากตัวเชื่อมโยงถูกเรียกใช้ทางอ้อม ผ่านไดรเวอร์ของคอมไพเลอร์ (เช่น gcc) จากนั้น
ตัวเลือกบรรทัดคำสั่งของตัวเชื่อมโยงทั้งหมดควรนำหน้าด้วย -Wl (หรืออะไรก็ตามที่เห็นสมควร
สำหรับไดรเวอร์คอมไพเลอร์โดยเฉพาะ) ดังนี้:

gcc -Wl, --start-group foo.o bar.o -Wl,--end-group

นี่เป็นสิ่งสำคัญเพราะไม่เช่นนั้นโปรแกรมควบคุมคอมไพเลอร์อาจหยุด
ตัวเลือกตัวเชื่อมโยง ส่งผลให้ลิงก์เสีย ความสับสนอาจเกิดขึ้นเมื่อผ่านตัวเลือกต่างๆ
ที่ต้องการค่าผ่านไดรเวอร์ เช่น การใช้ช่องว่างระหว่างตัวเลือกและอาร์กิวเมนต์
ทำหน้าที่เป็นตัวคั่นและทำให้คนขับผ่านเฉพาะตัวเลือกไปยังตัวเชื่อมโยงและ
อาร์กิวเมนต์ไปยังคอมไพเลอร์ ในกรณีนี้ เป็นการง่ายที่สุดที่จะใช้รูปแบบการรวมของทั้งสอง
ตัวเลือกตัวอักษรเดียวและหลายตัว เช่น:

gcc foo.o bar.o -Wl,-eENTRY -Wl,-Map=a.map

นี่คือตารางของสวิตช์บรรทัดคำสั่งทั่วไปที่ตัวเชื่อมโยง GNU ยอมรับ:

@ไฟล์
อ่านตัวเลือกบรรทัดคำสั่งจาก ไฟล์. ตัวเลือกที่อ่านจะถูกแทรกแทนที่
ต้นฉบับ @ไฟล์ ตัวเลือก. ถ้า ไฟล์ ไม่มีอยู่หรือไม่สามารถอ่านได้ดังนั้นตัวเลือก
จะได้รับการปฏิบัติอย่างแท้จริงและจะไม่ถูกลบออก

ตัวเลือกใน ไฟล์ ถูกคั่นด้วยช่องว่าง อาจรวมอักขระช่องว่าง
ในตัวเลือกโดยล้อมรอบตัวเลือกทั้งหมดในเครื่องหมายคำพูดเดี่ยวหรือคู่ ใด ๆ
อักขระ (รวมถึงแบ็กสแลช) อาจรวมด้วยคำนำหน้าอักขระเป็น
รวมกับแบ็กสแลช NS ไฟล์ ตัวเองอาจมี @ เพิ่มเติมไฟล์ ตัวเลือก; ใด ๆ
ตัวเลือกดังกล่าวจะได้รับการประมวลผลซ้ำ

-a คีย์เวิร์ด
ตัวเลือกนี้รองรับความเข้ากันได้ของ HP/UX NS คีย์เวิร์ด อาร์กิวเมนต์ต้องเป็นหนึ่งใน
สตริง เก็บ, ที่ใช้ร่วมกัน,หรือ ผิดนัด. -aarchive เทียบเท่ากับ
-Bstaticและอีกสองคำหลักมีฟังก์ชันเทียบเท่ากับ -Bdynamic. นี้
สามารถใช้ตัวเลือกได้หลายครั้ง

--audit AUDITLIB
เพิ่ม AUDITLIB ไปที่รายการ "DT_AUDIT" ของส่วนไดนามิก AUDITLIB ไม่ได้ตรวจสอบ
เพื่อการดำรงอยู่และจะไม่ใช้ DT_SONAME ที่ระบุในไลบรารี หากระบุไว้
หลายครั้ง "DT_AUDIT" จะมีรายการส่วนต่อประสานการตรวจสอบที่คั่นด้วยเครื่องหมายโคลอนถึง
ใช้. หากตัวเชื่อมโยงพบวัตถุที่มีรายการตรวจสอบขณะค้นหาที่ใช้ร่วมกัน
ไลบรารีจะเพิ่มรายการ "DT_DEPAUDIT" ที่เกี่ยวข้องในไฟล์เอาต์พุต นี้
ตัวเลือกมีความหมายเฉพาะบนแพลตฟอร์ม ELF ที่สนับสนุนอินเทอร์เฟซ rtld-audit

-A สถาปัตยกรรม
--สถาปัตยกรรม=สถาปัตยกรรม
ในรุ่นปัจจุบันของ ldตัวเลือกนี้มีประโยชน์สำหรับตระกูล Intel 960 ของ .เท่านั้น
สถาปัตยกรรม ในนั้น ld การกำหนดค่า สถาปัตยกรรม อาร์กิวเมนต์ระบุ
สถาปัตยกรรมเฉพาะในตระกูล 960 ทำให้มีการป้องกันและปรับเปลี่ยน
เส้นทางการค้นหาคลังเก็บถาวร

การเปิดตัวในอนาคตของ ld อาจรองรับการทำงานที่คล้ายคลึงกันสำหรับสถาปัตยกรรมอื่นๆ
ครอบครัว

-b รูปแบบการป้อนข้อมูล
--รูปแบบ=รูปแบบการป้อนข้อมูล
ld อาจได้รับการกำหนดค่าให้รองรับไฟล์อ็อบเจ็กต์มากกว่าหนึ่งประเภท ถ้าคุณ ld is
กำหนดค่าด้วยวิธีนี้ คุณสามารถใช้ -b ตัวเลือกเพื่อระบุรูปแบบไบนารีสำหรับอินพุต
ไฟล์อ็อบเจ็กต์ที่ตามตัวเลือกนี้ในบรรทัดคำสั่ง แม้ว่า ld มีการกำหนดค่า
เพื่อรองรับรูปแบบอ็อบเจ็กต์ทางเลือก คุณไม่จำเป็นต้องระบุสิ่งนี้ เช่น ld
ควรกำหนดค่าให้คาดว่าจะเป็นรูปแบบอินพุตเริ่มต้นในรูปแบบปกติที่สุดในแต่ละ
เครื่อง รูปแบบการป้อนข้อมูล เป็นสตริงข้อความ ชื่อของรูปแบบเฉพาะที่สนับสนุนโดย
ห้องสมุด BFD (คุณสามารถแสดงรายการรูปแบบไบนารีที่มีได้ด้วย objdump -i.)

คุณอาจต้องการใช้ตัวเลือกนี้หากคุณกำลังเชื่อมโยงไฟล์กับไบนารีที่ผิดปกติ
รูปแบบ. คุณสามารถใช้ -b เพื่อสลับรูปแบบอย่างชัดเจน (เมื่อเชื่อมโยงไฟล์อ็อบเจ็กต์
ของรูปแบบต่างๆ) โดยการรวม -b รูปแบบการป้อนข้อมูล ก่อนไฟล์อ็อบเจ็กต์แต่ละกลุ่ม
ในรูปแบบเฉพาะ

รูปแบบเริ่มต้นนำมาจากตัวแปรสภาพแวดล้อม "GNUTARGET"

คุณยังสามารถกำหนดรูปแบบอินพุตจากสคริปต์ได้โดยใช้คำสั่ง "TARGET";

-c MRI-คำสั่งไฟล์
--mri-script=MRI-คำสั่งไฟล์
เพื่อความเข้ากันได้กับตัวเชื่อมโยงที่ผลิตโดย MRI ld ยอมรับไฟล์สคริปต์ที่เขียนด้วย an
ภาษาคำสั่งทางเลือกที่จำกัด อธิบายไว้ในไฟล์สคริปต์ที่เข้ากันได้กับ MRI
ส่วนของเอกสาร GNU ld แนะนำไฟล์สคริปต์ MRI ด้วยตัวเลือก -c; ใช้
-T ตัวเลือกในการเรียกใช้สคริปต์ตัวเชื่อมโยงที่เขียนในวัตถุประสงค์ทั่วไป ld สคริปต์
ภาษา. ถ้า MRI-cmdfile ไม่ได้อยู่, ld ค้นหาในไดเร็กทอรีที่ระบุ
โดยใดๆ -L ตัวเลือก

-d
-กระแสตรง
-dp ทั้งสามตัวเลือกนี้เทียบเท่ากัน รองรับการใช้งานได้หลายรูปแบบ
กับลิงเกอร์อื่นๆ พวกเขากำหนดช่องว่างให้กับสัญลักษณ์ทั่วไปแม้ว่าเอาต์พุตที่ย้ายได้
ไฟล์ถูกระบุ (ด้วย -r). คำสั่งสคริปต์ "FORCE_COMMON_ALLOCATION" มี
ผลเดียวกัน

--depaudit AUDITLIB
-P AUDITLIB
เพิ่ม AUDITLIB ไปที่รายการ "DT_DEPAUDIT" ของส่วนไดนามิก AUDITLIB ไม่ใช่
ตรวจสอบการมีอยู่ และจะไม่ใช้ DT_SONAME ที่ระบุในไลบรารี ถ้า
ระบุหลายครั้ง "DT_DEPAUDIT" จะมีรายการการตรวจสอบคั่นด้วยเครื่องหมายทวิภาค
อินเทอร์เฟซที่จะใช้ ตัวเลือกนี้มีความหมายเฉพาะบนแพลตฟอร์ม ELF ที่รองรับ
อินเทอร์เฟซการตรวจสอบ rtld ตัวเลือก -P มีไว้สำหรับความเข้ากันได้ของ Solaris

-e การเข้า
--entry=การเข้า
ใช้ การเข้า เป็นสัญลักษณ์ที่ชัดเจนสำหรับการเริ่มต้นการทำงานของโปรแกรมของคุณ แทนที่จะเป็น
จุดเริ่มต้นเริ่มต้น หากไม่มีสัญลักษณ์ชื่อ การเข้า, ลิงเกอร์จะพยายาม
วิเคราะห์คำ การเข้า เป็นตัวเลขและใช้เป็นที่อยู่สำหรับป้อน (ตัวเลขจะเป็น
ตีความในฐาน 10; คุณอาจใช้คำนำหน้า 0x สำหรับฐาน 16 หรือนำหน้า 0 สำหรับฐาน
8)

--exclude-libs lib,lib...
ระบุรายการไลบรารีที่เก็บถาวรซึ่งสัญลักษณ์ไม่ควรเป็นแบบอัตโนมัติ
ส่งออก ชื่อไลบรารีอาจคั่นด้วยเครื่องหมายจุลภาคหรือทวิภาค ระบุ
"--exclude-libs ALL" ไม่รวมสัญลักษณ์ในไลบรารีเก็บถาวรทั้งหมดจากการส่งออกอัตโนมัติ
ตัวเลือกนี้ใช้ได้เฉพาะกับพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยงและสำหรับELF
พอร์ตเป้าหมาย สำหรับ i386 PE สัญลักษณ์ที่แสดงอย่างชัดเจนในไฟล์ .def จะยังคงอยู่
ส่งออกโดยไม่คำนึงถึงตัวเลือกนี้ สำหรับพอร์ตเป้าหมายของ ELF สัญลักษณ์ที่ได้รับผลกระทบจากสิ่งนี้
ระบบจะถือว่าตัวเลือกถูกซ่อนไว้

--exclude-modules-for-implib โมดูล,โมดูล...
ระบุรายการของไฟล์อ็อบเจ็กต์หรือสมาชิกที่เก็บถาวร ซึ่งสัญลักษณ์ไม่ควรเป็น
ส่งออกโดยอัตโนมัติ แต่ควรคัดลอกขายส่งไปยังไลบรารีนำเข้า
กำลังสร้างระหว่างการเชื่อมโยง ชื่อโมดูลอาจคั่นด้วยเครื่องหมายจุลภาคหรือ
โคลอนและต้องตรงกับชื่อไฟล์ที่ใช้โดย ld เพื่อเปิดไฟล์; สำหรับเก็บถาวร
สมาชิก นี่เป็นเพียงชื่อสมาชิก แต่สำหรับไฟล์อ็อบเจ็กต์ ชื่อที่แสดงจะต้อง
รวมและจับคู่พา ธ ใด ๆ อย่างแม่นยำเพื่อระบุไฟล์อินพุตบนตัวเชื่อมโยง
บรรทัดคำสั่ง. ตัวเลือกนี้ใช้ได้เฉพาะกับพอร์ตเป้าหมาย i386 PE ของ
ลิงเกอร์ สัญลักษณ์ที่ระบุไว้อย่างชัดเจนในไฟล์ .def จะยังคงส่งออกโดยไม่คำนึงถึง
ตัวเลือกนี้

-E
--การส่งออกแบบไดนามิก
--no-export-ไดนามิก
เมื่อสร้างไฟล์ปฏิบัติการที่เชื่อมโยงแบบไดนามิกโดยใช้คำสั่ง -E หรือตัวเลือก
--การส่งออกแบบไดนามิก ตัวเลือกทำให้ตัวเชื่อมโยงเพิ่มสัญลักษณ์ทั้งหมดให้กับสัญลักษณ์แบบไดนามิก
ตาราง. ตารางสัญลักษณ์ไดนามิกคือชุดของสัญลักษณ์ที่มองเห็นได้จากไดนามิก
วัตถุในเวลาทำงาน

หากคุณไม่ได้ใช้ตัวเลือกเหล่านี้ (หรือใช้ --no-export-ไดนามิก ตัวเลือก
เรียกคืนพฤติกรรมเริ่มต้น) ตารางสัญลักษณ์ไดนามิกจะมีเพียง
สัญลักษณ์เหล่านั้นที่อ้างอิงโดยวัตถุไดนามิกที่กล่าวถึงในลิงค์

หากคุณใช้ "dlopen" เพื่อโหลดออบเจกต์ไดนามิกที่ต้องอ้างอิงกลับไปยังสัญลักษณ์
กำหนดโดยโปรแกรม แทนที่จะเป็นวัตถุไดนามิกอื่น ๆ คุณอาจจะ
จำเป็นต้องใช้ตัวเลือกนี้เมื่อเชื่อมโยงโปรแกรมเอง

คุณยังสามารถใช้รายการไดนามิกเพื่อควบคุมว่าควรเพิ่มสัญลักษณ์ใดลงใน
ตารางสัญลักษณ์แบบไดนามิกหากรูปแบบเอาต์พุตรองรับ ดูคำอธิบายของ
--ไดนามิก-รายการ.

โปรดทราบว่าตัวเลือกนี้เฉพาะสำหรับพอร์ตเป้าหมายของ ELF เป้าหมาย PE สนับสนุนที่คล้ายกัน
ฟังก์ชันเพื่อส่งออกสัญลักษณ์ทั้งหมดจาก DLL หรือ EXE ดูคำอธิบายของ
--export-all-สัญลักษณ์ ด้านล่าง

-EB เชื่อมโยงวัตถุ big-endian สิ่งนี้มีผลกับรูปแบบเอาต์พุตเริ่มต้น

-EL เชื่อมโยงวัตถุ little-endian สิ่งนี้มีผลกับรูปแบบเอาต์พุตเริ่มต้น

-f ชื่อ
--เสริม=ชื่อ
เมื่อสร้างอ็อบเจ็กต์ที่ใช้ร่วมกันของ ELF ให้ตั้งค่าฟิลด์ DT_AUXILIARY ภายในเป็น
ชื่อที่ระบุ สิ่งนี้บอกไดนามิกลิงเกอร์ว่าตารางสัญลักษณ์ของแชร์
ควรใช้วัตถุเป็นตัวกรองเสริมในตารางสัญลักษณ์ของวัตถุที่ใช้ร่วมกัน
ชื่อ.

หากคุณเชื่อมโยงโปรแกรมกับวัตถุตัวกรองนี้ในภายหลัง เมื่อคุณเรียกใช้
โปรแกรม ตัวเชื่อมโยงแบบไดนามิกจะเห็นฟิลด์ DT_AUXILIARY หากตัวเชื่อมโยงแบบไดนามิก
แก้ไขสัญลักษณ์ใด ๆ จากวัตถุตัวกรอง ก่อนอื่นจะตรวจสอบว่ามี a
คำจำกัดความในวัตถุที่ใช้ร่วมกัน ชื่อ. หากมีจะใช้แทน
คำจำกัดความในวัตถุตัวกรอง วัตถุที่ใช้ร่วมกัน ชื่อ ไม่จำเป็นต้องมีอยู่ ดังนั้น
วัตถุที่ใช้ร่วมกัน ชื่อ อาจใช้เพื่อให้การดำเนินการทางเลือกของบาง
ฟังก์ชัน บางทีสำหรับการดีบักหรือสำหรับประสิทธิภาพเฉพาะเครื่อง

ตัวเลือกนี้อาจระบุได้มากกว่าหนึ่งครั้ง รายการ DT_AUXILIARY จะถูกสร้างขึ้น
ตามลำดับที่ปรากฏบนบรรทัดคำสั่ง

-F ชื่อ
--ตัวกรอง=ชื่อ
เมื่อสร้างอ็อบเจ็กต์ที่ใช้ร่วมกันของ ELF ให้ตั้งค่าฟิลด์ DT_FILTER ภายในเป็นค่าที่ระบุ
ชื่อ. สิ่งนี้บอกไดนามิกลิงเกอร์ว่าตารางสัญลักษณ์ของอ็อบเจ็กต์ที่ใช้ร่วมกันซึ่ง
กำลังสร้างควรใช้เป็นตัวกรองในตารางสัญลักษณ์ของวัตถุที่ใช้ร่วมกัน
ชื่อ.

หากคุณเชื่อมโยงโปรแกรมกับวัตถุตัวกรองนี้ในภายหลัง เมื่อคุณเรียกใช้
โปรแกรม ตัวเชื่อมโยงแบบไดนามิกจะเห็นฟิลด์ DT_FILTER ตัวเชื่อมโยงแบบไดนามิกจะ
แก้ไขสัญลักษณ์ตามตารางสัญลักษณ์ของวัตถุตัวกรองตามปกติ แต่
จะเชื่อมโยงกับคำจำกัดความที่พบในวัตถุที่ใช้ร่วมกันจริง ๆ ชื่อ. ดังนั้น
วัตถุตัวกรองสามารถใช้เพื่อเลือกชุดย่อยของสัญลักษณ์ที่อ็อบเจกต์ให้มา
ชื่อ.

ตัวเชื่อมโยงที่เก่ากว่าบางตัวใช้ -F ตัวเลือกตลอดการคอมไพล์ toolchain สำหรับ
การระบุรูปแบบไฟล์อ็อบเจ็กต์สำหรับไฟล์อ็อบเจ็กต์อินพุตและเอาต์พุต ตัวเชื่อมโยง GNU
ใช้กลไกอื่นเพื่อการนี้: the -b, --รูปแบบ, --oformat ตัวเลือก
คำสั่ง "TARGET" ในสคริปต์ตัวเชื่อมโยง และตัวแปรสภาพแวดล้อม "GNUTARGET" GNU
ลิงเกอร์จะละเว้น -F ตัวเลือกเมื่อไม่ได้สร้างวัตถุที่ใช้ร่วมกันของ ELF

-fini=ชื่อ
เมื่อสร้างอ็อบเจ็กต์ที่ปฏิบัติการได้หรือที่ใช้ร่วมกันของ ELF ให้เรียก NAME เมื่อไฟล์ปฏิบัติการหรือ
ยกเลิกการโหลดวัตถุที่ใช้ร่วมกันโดยการตั้งค่า DT_FINI เป็นที่อยู่ของฟังก์ชัน โดย
ค่าเริ่มต้น ตัวเชื่อมโยงใช้ "_fini" เป็นฟังก์ชันในการเรียก

-g ละเลย ให้ความเข้ากันได้กับเครื่องมืออื่น ๆ

-G ความคุ้มค่า
--gpsize=ความคุ้มค่า
กำหนดขนาดสูงสุดของวัตถุที่จะปรับให้เหมาะสมโดยใช้การลงทะเบียน GP เป็น ขนาด. นี้
มีความหมายสำหรับรูปแบบไฟล์อ็อบเจ็กต์เท่านั้น เช่น MIPS ELF ที่รองรับการวางขนาดใหญ่
และของชิ้นเล็กๆ เป็นส่วนๆ สิ่งนี้ถูกละเว้นสำหรับไฟล์อ็อบเจ็กต์อื่น
รูปแบบ

-h ชื่อ
-โซนาเมะ=ชื่อ
เมื่อสร้างอ็อบเจ็กต์ที่ใช้ร่วมกันของ ELF ให้ตั้งค่าฟิลด์ DT_SONAME ภายในเป็นค่าที่ระบุ
ชื่อ. เมื่อโปรแกรมปฏิบัติการเชื่อมโยงกับอ็อบเจ็กต์ที่ใช้ร่วมกันซึ่งมีฟิลด์ DT_SONAME
จากนั้นเมื่อรันไฟล์เรียกทำงาน ไดนามิกลิงก์เกอร์จะพยายามโหลดไฟล์ที่แชร์
อ็อบเจ็กต์ที่ระบุโดยฟิลด์ DT_SONAME แทนที่จะใช้ชื่อไฟล์ที่กำหนดให้กับ
ลิงเกอร์

-i ดำเนินการลิงก์ที่เพิ่มขึ้น (เหมือนกับ option -r).

-init=ชื่อ
เมื่อสร้างอ็อบเจ็กต์ที่ปฏิบัติการได้หรือที่ใช้ร่วมกันของ ELF ให้เรียก NAME เมื่อไฟล์ปฏิบัติการหรือ
โหลดวัตถุที่ใช้ร่วมกันโดยการตั้งค่า DT_INIT เป็นที่อยู่ของฟังก์ชัน โดย
ค่าเริ่มต้น ตัวเชื่อมโยงใช้ "_init" เป็นฟังก์ชันในการเรียก

-l namespec
--ห้องสมุด=namespec
เพิ่มไฟล์เก็บถาวรหรืออ็อบเจ็กต์ที่ระบุโดย namespec ไปยังรายการไฟล์ที่จะเชื่อมโยง
ตัวเลือกนี้สามารถใช้ได้หลายครั้ง ถ้า namespec เป็นรูปแบบ :ชื่อไฟล์, ld
จะค้นหาเส้นทางไลบรารีสำหรับไฟล์ชื่อ ชื่อไฟล์มิฉะนั้นจะค้นหา
เส้นทางไลบรารีสำหรับไฟล์ชื่อ libnamespec.a.

บนระบบที่รองรับไลบรารีที่แบ่งใช้ ld อาจค้นหาไฟล์อื่นที่ไม่ใช่
libnamespec.a. โดยเฉพาะในระบบ ELF และ SunOS ld จะค้นหาไดเรกทอรีสำหรับ
ห้องสมุดชื่อ libnamespec.so ก่อนจะค้นหาสิ่งที่เรียกว่า libnamespec.a. (โดย
แบบแผน ส่วนขยาย ".so" หมายถึงไลบรารีที่ใช้ร่วมกัน) โปรดทราบว่าพฤติกรรมนี้
ใช้ไม่ได้กับ :ชื่อไฟล์ซึ่งระบุไฟล์ที่เรียกว่า .เสมอ ชื่อไฟล์.

ตัวเชื่อมโยงจะค้นหาที่เก็บถาวรเพียงครั้งเดียว ณ ตำแหน่งที่ระบุบน
บรรทัดคำสั่ง หากไฟล์เก็บถาวรกำหนดสัญลักษณ์ที่ไม่ได้กำหนดไว้ในวัตถุบางอย่าง
ซึ่งปรากฏก่อนไฟล์เก็บถาวรบนบรรทัดคำสั่ง ตัวเชื่อมโยงจะรวม
ไฟล์ที่เหมาะสมจากไฟล์เก็บถาวร อย่างไรก็ตาม สัญลักษณ์ที่ไม่ได้กำหนดในวัตถุ
ปรากฏขึ้นในภายหลังบนบรรทัดคำสั่งจะไม่ทำให้ตัวเชื่อมโยงค้นหาไฟล์เก็บถาวร
อีกครั้ง

ดู -( ตัวเลือกสำหรับวิธีบังคับตัวเชื่อมโยงเพื่อค้นหาไฟล์เก็บถาวรหลาย ๆ ครั้ง

คุณสามารถแสดงรายการที่เก็บถาวรเดียวกันได้หลายครั้งบนบรรทัดคำสั่ง

การค้นหาไฟล์เก็บถาวรประเภทนี้เป็นมาตรฐานสำหรับตัวเชื่อมโยง Unix แต่ถ้าคุณเป็น
การใช้ ld บน AIX โปรดทราบว่ามันแตกต่างจากลักษณะการทำงานของตัวเชื่อมโยง AIX

-L searchdir
--library-path=searchdir
เพิ่มเส้นทาง searchdir สู่รายการเส้นทางที่ ld จะค้นหาไลบรารีที่เก็บถาวรและ
ld สคริปต์ควบคุม คุณสามารถใช้ตัวเลือกนี้ได้หลายครั้ง ไดเร็กทอรีคือ
ค้นหาตามลำดับที่ระบุไว้ในบรรทัดคำสั่ง ไดเรกทอรี
ที่ระบุในบรรทัดคำสั่งจะถูกค้นหาก่อนไดเร็กทอรีเริ่มต้น ทั้งหมด -L
ตัวเลือกใช้ได้กับทุกคน -l ตัวเลือก โดยไม่คำนึงถึงลำดับที่ตัวเลือกปรากฏ
-L ตัวเลือกไม่มีผลต่อวิธีการ ld ค้นหาสคริปต์ตัวเชื่อมโยงเว้นแต่ -T ตัวเลือกที่
ระบุไว้

If searchdir เริ่มต้นด้วย "=" จากนั้น "=" จะถูกแทนที่ด้วย sysroot อุปสรรค,
ควบคุมโดย --sysroot ตัวเลือกหรือระบุเมื่อกำหนดค่าตัวเชื่อมโยง

ชุดเริ่มต้นของเส้นทางที่ค้นหา (โดยไม่ได้ระบุด้วย -L) ขึ้นอยู่กับว่า
โหมดจำลอง ld กำลังใช้งาน และในบางกรณีก็เกี่ยวกับวิธีการกำหนดค่าด้วย

พาธยังสามารถระบุได้ในสคริปต์ลิงก์ด้วยคำสั่ง "SEARCH_DIR"
ไดเรกทอรีที่ระบุด้วยวิธีนี้จะถูกค้นหา ณ จุดที่สคริปต์ตัวเชื่อมโยง
ปรากฏในบรรทัดคำสั่ง

-m การแข่งขัน
เลียนแบบ การแข่งขัน ลิงเกอร์ คุณสามารถแสดงรายการการจำลองที่พร้อมใช้งานด้วย
--verbose or -V ตัวเลือก

ถ้า -m ไม่ได้ใช้ตัวเลือก การจำลองนำมาจาก "LDEMULATION"
ตัวแปรสภาพแวดล้อม หากมีการกำหนดไว้

มิฉะนั้น การจำลองเริ่มต้นจะขึ้นอยู่กับการกำหนดค่าตัวเชื่อมโยง

-M
--print-map
พิมพ์ลิงค์แผนที่ไปยังเอาต์พุตมาตรฐาน แผนที่ลิงค์ให้ข้อมูลเกี่ยวกับ
ลิงค์รวมถึงสิ่งต่อไปนี้:

· ตำแหน่งที่ไฟล์อ็อบเจ็กต์ถูกแมปในหน่วยความจำ

· วิธีการจัดสรรสัญลักษณ์ทั่วไป

· สมาชิกที่เก็บถาวรทั้งหมดรวมอยู่ในลิงก์ พร้อมระบุสัญลักษณ์ซึ่ง
ทำให้สมาชิกหอจดหมายเหตุถูกนำเข้ามา

· ค่าที่กำหนดให้กับสัญลักษณ์

หมายเหตุ - สัญลักษณ์ที่มีค่าคำนวณโดยนิพจน์ที่เกี่ยวข้องกับa
การอ้างอิงถึงค่าก่อนหน้าของสัญลักษณ์เดียวกันอาจไม่มีผลลัพธ์ที่ถูกต้อง
แสดงในแผนที่ลิงค์ นี่เป็นเพราะตัวเชื่อมโยงทิ้งตัวกลาง
ผลลัพธ์และเก็บเฉพาะค่าสุดท้ายของนิพจน์ ภายใต้เช่น
สถานการณ์ที่ตัวเชื่อมโยงจะแสดงค่าสุดท้ายที่อยู่ในวงเล็บเหลี่ยม
ตัวอย่างเช่น สคริปต์ตัวเชื่อมโยงที่มี:

ฟู = 1
foo = foo * 4
foo = foo + 8

จะสร้างผลลัพธ์ต่อไปนี้ในแผนที่ลิงค์หาก -M ใช้ตัวเลือก:

0x00000001 foo = 0x1
[0x0000000c] foo = (foo * 0x4)
[0x0000000c] foo = (foo + 0x8)

ดู การแสดงออก สำหรับข้อมูลเพิ่มเติมเกี่ยวกับนิพจน์ในสคริปต์ตัวเชื่อมโยง

-n
--nmagic
ปิดการจัดตำแหน่งหน้าของส่วนต่างๆ และปิดใช้งานการลิงก์กับไลบรารีที่แชร์ ถ้า
รูปแบบเอาต์พุตรองรับตัวเลขเวทย์มนตร์สไตล์ Unix ทำเครื่องหมายผลลัพธ์เป็น "NMAGIC"

-N
--omagic
ตั้งค่าส่วนข้อความและข้อมูลให้อ่านและเขียนได้ นอกจากนี้ ห้ามจัดหน้า
ส่วนข้อมูล และปิดใช้งานการลิงก์กับไลบรารีที่แชร์ ถ้ารูปแบบผลลัพธ์
รองรับตัวเลขเวทย์มนตร์สไตล์ Unix ทำเครื่องหมายผลลัพธ์เป็น "OMAGIC" หมายเหตุ: แม้ว่า a
อนุญาตให้ใช้ส่วนข้อความที่เขียนได้สำหรับเป้าหมาย PE-COFF ซึ่งไม่สอดคล้องกับ
ข้อกำหนดรูปแบบที่เผยแพร่โดย Microsoft

--no-omagic
ตัวเลือกนี้จะลบล้างผลกระทบส่วนใหญ่ของ -N ตัวเลือก. ตั้งค่าส่วนข้อความเป็น
เป็นแบบอ่านอย่างเดียว และบังคับให้ส่วนข้อมูลจัดแนวหน้า หมายเหตุ - ตัวเลือกนี้ไม่
ไม่เปิดใช้งานการลิงก์กับไลบรารีที่แชร์ ใช้ -Bdynamic สำหรับสิ่งนี้.

-o เอาท์พุต
--output=เอาท์พุต
ใช้ เอาท์พุต เป็นชื่อรายการที่ผลิตโดย ld; ถ้าตัวเลือกนี้ไม่ใช่
ระบุชื่อ ออก ถูกใช้โดยค่าเริ่มต้น คำสั่งสคริปต์ "OUTPUT" ยังสามารถ
ระบุชื่อไฟล์ที่ส่งออก

-O ระดับ
If ระดับ เป็นค่าตัวเลขที่มากกว่าศูนย์ ld ปรับเอาต์พุตให้เหมาะสม นี้อาจจะ
ใช้เวลานานกว่ามากและควรเปิดใช้งานสำหรับรอบชิงชนะเลิศเท่านั้น
ไบนารี่. ในขณะนี้ ตัวเลือกนี้มีผลกับการสร้างไลบรารีที่ใช้ร่วมกันของ ELF เท่านั้น อนาคต
การปล่อยตัวเชื่อมโยงอาจใช้ประโยชน์จากตัวเลือกนี้มากขึ้น ปัจจุบันยังไม่มี
ความแตกต่างในลักษณะการทำงานของตัวเชื่อมโยงสำหรับค่าที่ไม่ใช่ศูนย์ที่แตกต่างกันของตัวเลือกนี้
อีกครั้งนี้อาจเปลี่ยนแปลงได้ด้วยการเปิดตัวในอนาคต

--push-state
พื้นที่ปลูก --push-state อนุญาตให้รักษาสถานะปัจจุบันของธงที่ควบคุม
การจัดการไฟล์อินพุตเพื่อให้สามารถกู้คืนได้ทั้งหมดด้วยไฟล์ที่สอดคล้องกัน
--pop-state ตัวเลือก

ตัวเลือกที่ครอบคลุมคือ: -Bdynamic, -Bstatic, -dn, -dy, -call_shared,
-non_shared, -คงที่, -N, -n, --ทั้งคลัง, --no-whole-archive, -r, -Ur,
--copy-dt-needed-entries, --no-copy-dt-needed-entries, --ตามความจำเป็น, --ไม่จำเป็น,
และ -a.

เป้าหมายหนึ่งสำหรับตัวเลือกนี้คือข้อกำหนดสำหรับ pkg-config. เมื่อใช้ร่วมกับ
--libs ตัวเลือกไลบรารีที่จำเป็นทั้งหมดอาจอยู่ในรายการแล้วอาจเชื่อมโยงกับ
ตลอดเวลา. เป็นการดีกว่าที่จะส่งคืนสิ่งต่อไปนี้:

-Wl,--push-state,--as-needed -libone -libtwo -Wl,--pop-state

เลิกทำผลกระทบของ --push-state เรียกคืนค่าก่อนหน้าของแฟล็กที่ควบคุม
การจัดการไฟล์อินพุต

-q
--emit-relocs
ปล่อยให้ส่วนการโยกย้ายและเนื้อหาในไฟล์ปฏิบัติการที่เชื่อมโยงอย่างสมบูรณ์ โพสต์ลิงค์
เครื่องมือวิเคราะห์และเพิ่มประสิทธิภาพอาจต้องการข้อมูลนี้เพื่อดำเนินการให้ถูกต้อง
การปรับเปลี่ยนปฏิบัติการ ส่งผลให้มีไฟล์ปฏิบัติการที่ใหญ่ขึ้น

ขณะนี้ตัวเลือกนี้รองรับบนแพลตฟอร์ม ELF เท่านั้น

--force-ไดนามิก
บังคับให้ไฟล์เอาต์พุตมีส่วนไดนามิก ตัวเลือกนี้เฉพาะสำหรับ VxWorks
เป้าหมาย

-r
--ย้ายได้
สร้างเอาต์พุตที่ย้ายได้---เช่นสร้างไฟล์เอาต์พุตที่สามารถทำหน้าที่เป็น
อินพุตไปยัง ld. มักเรียกกันว่า เพียงบางส่วน การเชื่อมโยง. เป็นผลข้างเคียงในสภาพแวดล้อม
ที่รองรับตัวเลขเวทย์มนตร์ Unix มาตรฐานตัวเลือกนี้ยังตั้งค่าไฟล์เอาต์พุต
เลขมหัศจรรย์ของ "OMAGIC" หากไม่ได้ระบุตัวเลือกนี้ ไฟล์ที่แน่นอนคือ
ผลิต เมื่อเชื่อมโยงโปรแกรม C++ ตัวเลือกนี้ จะ ไม่ แก้ไขการอ้างอิงถึง
ตัวสร้าง; ในการทำเช่นนั้น ใช้ -Ur.

เมื่อไฟล์อินพุตไม่มีรูปแบบเดียวกับไฟล์เอาต์พุต ให้ทำการลิงก์บางส่วน
รองรับเฉพาะในกรณีที่ไฟล์อินพุตนั้นไม่มีการโยกย้ายใดๆ แตกต่าง
รูปแบบเอาต์พุตอาจมีข้อจำกัดเพิ่มเติม ตัวอย่างเช่นบางรูปแบบที่ใช้ "a.out"
ไม่รองรับการเชื่อมโยงบางส่วนกับไฟล์อินพุตในรูปแบบอื่นเลย

ตัวเลือกนี้ทำสิ่งเดียวกับ -i.

-R ชื่อไฟล์
--just-สัญลักษณ์=ชื่อไฟล์
อ่านชื่อสัญลักษณ์และที่อยู่จาก ชื่อไฟล์แต่ห้ามย้ายหรือรวม
ในการส่งออก สิ่งนี้ทำให้ไฟล์เอาต์พุตของคุณอ้างอิงเชิงสัญลักษณ์ถึงค่าสัมบูรณ์
ตำแหน่งของหน่วยความจำที่กำหนดไว้ในโปรแกรมอื่น คุณสามารถใช้ตัวเลือกนี้มากกว่า
ครั้งหนึ่ง

เพื่อความเข้ากันได้กับตัวเชื่อมโยง ELF อื่นๆ ถ้า -R ตัวเลือกตามด้วยไดเร็กทอรี
ชื่อ แทนที่จะเป็นชื่อไฟล์ จะถือว่าเป็น -rpath ตัวเลือก

-s
--แถบทั้งหมด
ละเว้นข้อมูลสัญลักษณ์ทั้งหมดจากไฟล์ที่ส่งออก

-S
--สตริป-ดีบัก
ละเว้นข้อมูลสัญลักษณ์ดีบักเกอร์ (แต่ไม่ใช่สัญลักษณ์ทั้งหมด) จากไฟล์เอาต์พุต

-t
--ติดตาม
พิมพ์ชื่อไฟล์อินพุตเป็น ld ประมวลผลพวกเขา

-T scriptfile
--script=scriptfile
ใช้ scriptfile เป็นสคริปต์ตัวเชื่อมโยง สคริปต์นี้แทนที่ ldสคริปต์ตัวเชื่อมโยงเริ่มต้นของ
(แทนที่จะเพิ่มเข้าไป) ดังนั้น commandfile ต้องระบุทุกสิ่งที่จำเป็นเพื่อ
อธิบายไฟล์ที่ส่งออก ถ้า scriptfile ไม่มีอยู่ในไดเร็กทอรีปัจจุบัน
"ld" ค้นหามันในไดเร็กทอรีที่ระบุโดยที่อยู่ข้างหน้า -L ตัวเลือก. หลายรายการ
-T ตัวเลือกสะสม

-dT scriptfile
--default-script=scriptfile
ใช้ scriptfile เป็นสคริปต์ตัวเชื่อมโยงเริ่มต้น

ตัวเลือกนี้คล้ายกับ --script ตัวเลือกยกเว้นว่าการประมวลผลของสคริปต์คือ
ล่าช้าจนกว่าจะประมวลผลส่วนที่เหลือของบรรทัดคำสั่ง สิ่งนี้ทำให้
ตัวเลือกที่วางหลัง --default-script ตัวเลือกบนบรรทัดคำสั่งที่จะส่งผลต่อ
พฤติกรรมของสคริปต์ตัวเชื่อมโยง ซึ่งอาจมีความสำคัญเมื่อบรรทัดคำสั่งของตัวเชื่อมโยง
ผู้ใช้ไม่สามารถควบคุมได้โดยตรง (เช่นเนื่องจากบรรทัดคำสั่งเป็น
สร้างด้วยเครื่องมืออื่น เช่น gcc).

-u เครื่องหมาย
--undefined=เครื่องหมาย
บังคับ เครื่องหมาย ที่จะป้อนในไฟล์เอาต์พุตเป็นสัญลักษณ์ที่ไม่ได้กำหนด การทำเช่นนี้อาจ
ตัวอย่างเช่น ทริกเกอร์การเชื่อมโยงของโมดูลเพิ่มเติมจากไลบรารีมาตรฐาน -u อาจจะ
ซ้ำด้วยอาร์กิวเมนต์ตัวเลือกที่แตกต่างกันเพื่อป้อนสัญลักษณ์ที่ไม่ได้กำหนดเพิ่มเติม นี้
ตัวเลือกเทียบเท่ากับคำสั่งสคริปต์ตัวเชื่อมโยง "EXTERN"

หากใช้ตัวเลือกนี้เพื่อบังคับให้โมดูลเพิ่มเติมถูกดึงเข้าไปในลิงก์
และหากเป็นข้อผิดพลาดสำหรับสัญลักษณ์ที่ไม่ได้กำหนดไว้ ตัวเลือก
--require-กำหนด ควรใช้แทน

--require-default=เครื่องหมาย
บังคับว่า เครื่องหมาย ถูกกำหนดไว้ในไฟล์เอาต์พุต ตัวเลือกนี้เหมือนกับตัวเลือก
--ไม่ได้กำหนด ยกเว้นว่าถ้า เครื่องหมาย ไม่ได้กำหนดไว้ในไฟล์เอาต์พุตแล้ว linker
จะออกข้อผิดพลาดและออก เอฟเฟกต์เดียวกันสามารถทำได้ในสคริปต์ตัวเชื่อมโยงโดย
โดยใช้ "EXTERN", "ASSERT" และ "DEFINED" ร่วมกัน ตัวเลือกนี้สามารถใช้ได้หลายรายการ
เวลาต้องใช้สัญลักษณ์เพิ่มเติม

-Ur สำหรับอย่างอื่นที่ไม่ใช่โปรแกรม C++ ตัวเลือกนี้จะเทียบเท่ากับ -r: มันสร้าง
เอาต์พุตที่ย้ายได้---เช่น ไฟล์เอาต์พุตที่สามารถทำหน้าที่เป็นอินพุตไปยัง ld. เมื่อ
การเชื่อมโยงโปรแกรม C ++ -Ur ทำ แก้ไขการอ้างอิงถึงตัวสร้างไม่เหมือน -r. มันไม่
ใช้งานไม่ได้ -Ur ในไฟล์ที่ตัวเองเชื่อมโยงกับ -Ur; เมื่อ
สร้างตารางตัวสร้างแล้ว ไม่สามารถเพิ่มเข้าไปได้ ใช้ -Ur สุดท้ายเท่านั้น
ลิงค์บางส่วนและ -r สำหรับคนอื่นๆ.

--เด็กกำพร้า-การจัดการ=โหมด
ควบคุมวิธีจัดการส่วนเด็กกำพร้า ส่วนเด็กกำพร้านั้นไม่ได้เจาะจง
กล่าวถึงในสคริปต์ตัวเชื่อมโยง

โหมด สามารถมีค่าใดค่าหนึ่งดังต่อไปนี้:

"สถานที่"
ส่วนเด็กกำพร้าจะถูกวางไว้ในส่วนผลลัพธ์ที่เหมาะสมตามกลยุทธ์
อธิบายไว้ใน เด็กกำพร้า ส่วน. ทางเลือก --มีเอกลักษณ์ ยังส่งผลกระทบต่อส่วนต่างๆ อีกด้วย
วางไว้

"ทิ้ง"
ส่วนเด็กกำพร้าทั้งหมดจะถูกละทิ้งโดยวางไว้ใน /ทิ้ง/ มาตรา.

"เตือน"
ผู้เชื่อมโยงจะวางส่วนเด็กกำพร้าเป็น "สถานที่" และยังออกคำเตือน

"ข้อผิดพลาด"
ตัวเชื่อมโยงจะออกพร้อมกับข้อผิดพลาดหากพบส่วนเด็กกำพร้า

ค่าเริ่มต้น if --การจัดการเด็กกำพร้า ไม่ได้รับคือ "สถานที่"

--เอกลักษณ์[=วน]
สร้างส่วนเอาต์พุตแยกต่างหากสำหรับทุกส่วนอินพุตที่ตรงกัน วนหรือถ้า
ตัวแทนเสริม วน อาร์กิวเมนต์หายไป สำหรับทุกส่วนของอินพุตเด็กกำพร้า หนึ่ง
ส่วนเด็กกำพร้าเป็นส่วนที่ไม่ได้กล่าวถึงโดยเฉพาะในสคริปต์ตัวเชื่อมโยง คุณสามารถใช้สิ่งนี้
ตัวเลือกหลายครั้งบนบรรทัดคำสั่ง; ป้องกันการรวมอินพุตปกติ
ส่วนที่มีชื่อเดียวกัน แทนที่การกำหนดส่วนผลลัพธ์ในสคริปต์ตัวเชื่อมโยง

-v
--รุ่น
-V แสดงหมายเลขเวอร์ชันสำหรับ ld. -V ตัวเลือกยังแสดงรายการการจำลองที่รองรับ

-x
--ทิ้งทั้งหมด
ลบสัญลักษณ์ท้องถิ่นทั้งหมด

-X
--ทิ้ง-ชาวบ้าน
ลบสัญลักษณ์ท้องถิ่นชั่วคราวทั้งหมด (สัญลักษณ์เหล่านี้เริ่มต้นด้วยโลคัลเฉพาะระบบ
คำนำหน้าป้ายกำกับ โดยทั่วไป .L สำหรับระบบเอลฟ์หรือ L สำหรับระบบ a.out แบบเดิม)

-y เครื่องหมาย
--trace-สัญลักษณ์=เครื่องหมาย
พิมพ์ชื่อของแต่ละไฟล์ที่เชื่อมโยงซึ่ง เครื่องหมาย ปรากฏขึ้น อาจให้ตัวเลือกนี้
กี่ครั้งก็ได้ ในหลายระบบ จำเป็นต้องเติมขีดล่าง

ตัวเลือกนี้มีประโยชน์เมื่อคุณมีสัญลักษณ์ที่ไม่ได้กำหนดในลิงก์ของคุณแต่ไม่ทราบ
ที่มาของข้อมูลอ้างอิง

-Y เส้นทาง
เพิ่ม เส้นทาง ไปยังเส้นทางการค้นหาไลบรารีเริ่มต้น มีตัวเลือกนี้สำหรับ Solaris
ความเข้ากันได้

-z คีย์เวิร์ด
คำหลักที่รู้จักคือ:

combreloc
รวมส่วน reloc หลายส่วนและจัดเรียงเพื่อให้ค้นหาสัญลักษณ์แบบไดนามิก
แคชได้

defs
ไม่อนุญาตสัญลักษณ์ที่ไม่ได้กำหนดในไฟล์อ็อบเจ็กต์ สัญลักษณ์ที่ไม่ได้กำหนดในการแชร์
ห้องสมุดยังคงได้รับอนุญาต

execstack
ทำเครื่องหมายอ็อบเจ็กต์ว่าต้องการสแต็กที่เรียกใช้งานได้

ทั่วโลก
ตัวเลือกนี้มีความหมายเฉพาะเมื่อสร้างวัตถุที่ใช้ร่วมกัน มันทำให้
สัญลักษณ์ที่กำหนดโดยวัตถุที่ใช้ร่วมกันนี้มีให้สำหรับการแก้ไขสัญลักษณ์ของ
ต่อมาโหลดไลบรารี่

initfirst
ตัวเลือกนี้มีความหมายเฉพาะเมื่อสร้างวัตถุที่ใช้ร่วมกัน มันทำเครื่องหมายวัตถุ
เพื่อให้การเริ่มต้นรันไทม์เกิดขึ้นก่อนการเริ่มต้นรันไทม์ของ
ออบเจ็กต์อื่นๆ ที่นำเข้าสู่กระบวนการพร้อมกัน ในทำนองเดียวกัน
การสิ้นสุดรันไทม์ของอ็อบเจ็กต์จะเกิดขึ้นหลังจากการสิ้นสุดรันไทม์ของ
วัตถุอื่นๆ

ขวาง
ทำเครื่องหมายวัตถุที่ตารางสัญลักษณ์ของตารางคั่นหน้าสัญลักษณ์ทั้งหมดยกเว้น
ปฏิบัติการหลัก

สันหลังยาว
เมื่อสร้างไลบรารีที่เรียกใช้งานได้หรือที่ใช้ร่วมกัน ให้ทำเครื่องหมายเพื่อบอกไดนามิก
ตัวเชื่อมโยงเพื่อเลื่อนความละเอียดการเรียกใช้ฟังก์ชันไปยังจุดที่เรียกใช้ฟังก์ชัน
(ผูกขี้เกียจ) มากกว่าเวลาโหลด ผูกขี้เกียจเป็นค่าเริ่มต้น

loadfltr
ทำเครื่องหมายอ็อบเจ็กต์ที่ตัวกรองถูกประมวลผลทันทีที่รันไทม์

muldefs
อนุญาตให้ใช้คำจำกัดความได้หลายแบบ

nocombreloc
ปิดใช้งานการรวมหลายส่วน reloc

nocopyreloc
ปิดการใช้งานตัวเชื่อมโยงที่สร้างตัวแปร .dynbss ซึ่งใช้แทนตัวแปรที่กำหนดไว้ใน
ห้องสมุดที่ใช้ร่วมกัน อาจส่งผลให้มีการย้ายตำแหน่งข้อความแบบไดนามิก

nodedefaultlib
ทำเครื่องหมายวัตถุที่การค้นหาการพึ่งพาของวัตถุนี้จะละเว้นใดๆ
เส้นทางการค้นหาไลบรารีเริ่มต้น

nodelete
ทำเครื่องหมายว่าไม่ควรยกเลิกการโหลดวัตถุในขณะใช้งานจริง

nodlopen
ทำเครื่องหมายวัตถุที่ไม่มีให้ "dlopen"

nodump
ทำเครื่องหมายวัตถุไม่สามารถทิ้งโดย "dldump"

noexecstack
ทำเครื่องหมายอ็อบเจ็กต์ว่าไม่ต้องการสแต็กที่เรียกใช้งานได้

ข้อความ
ถือว่า DT_TEXTREL ในอ็อบเจ็กต์ที่ใช้ร่วมกันเป็นข้อผิดพลาด

ข้อความ
อย่าถือว่า DT_TEXTREL ในวัตถุที่ใช้ร่วมกันเป็นข้อผิดพลาด

textoff
อย่าถือว่า DT_TEXTREL ในวัตถุที่ใช้ร่วมกันเป็นข้อผิดพลาด

norelro
อย่าสร้างส่วนหัวของเซ็กเมนต์ ELF "PT_GNU_RELRO" ในวัตถุ

ตอนนี้ เมื่อสร้างไลบรารีที่เรียกใช้งานได้หรือที่ใช้ร่วมกัน ให้ทำเครื่องหมายเพื่อบอกไดนามิก
ตัวเชื่อมโยงเพื่อแก้ไขสัญลักษณ์ทั้งหมดเมื่อเริ่มต้นโปรแกรมหรือเมื่อแชร์
ไลบรารีเชื่อมโยงกับการใช้ dlopen แทนการเลื่อนความละเอียดการเรียกใช้ฟังก์ชัน
จนถึงจุดที่เรียกใช้ฟังก์ชันครั้งแรก

ที่มา
ทำเครื่องหมายวัตถุอาจมี $ORIGIN

rero
สร้างส่วนหัวของเซ็กเมนต์ ELF "PT_GNU_RELRO" ในวัตถุ

max-page-size=ความคุ้มค่า
ตั้งค่าขนาดหน้าสูงสุดของการจำลองเป็น ความคุ้มค่า.

common-page-size=ความคุ้มค่า
ตั้งค่าขนาดหน้าทั่วไปของการจำลองเป็น ความคุ้มค่า.

ขนาดสแต็ก=ความคุ้มค่า
ระบุขนาดสแต็กสำหรับในส่วน "PT_GNU_STACK" ของ ELF การระบุศูนย์ will
แทนที่การสร้างกลุ่ม "PT_GNU_STACK" ที่ไม่ใช่ขนาดเริ่มต้นที่เป็นค่าเริ่มต้น

bndplt
สร้างคำนำหน้า BND ในรายการ PLT เสมอ รองรับสำหรับ Linux/x86_64

noextern-protected-data
อย่าถือว่าสัญลักษณ์ข้อมูลที่ได้รับการป้องกันเป็นข้อมูลภายนอกเมื่อสร้างไลบรารีที่แชร์ นี้
ตัวเลือกแทนที่ค่าเริ่มต้นของแบ็กเอนด์ของลิงเกอร์ สามารถใช้เพื่อแก้ไขปัญหาที่ไม่ถูกต้องได้
การย้ายถิ่นฐานกับสัญลักษณ์ข้อมูลที่ได้รับการป้องกันที่สร้างโดยคอมไพเลอร์ อัปเดตเมื่อ
สัญลักษณ์ข้อมูลที่ได้รับการป้องกันโดยโมดูลอื่นไม่สามารถมองเห็นได้จากการแชร์ผลลัพธ์
ห้องสมุด. รองรับสำหรับ i386 และ x86-64

call-nop=prefix-addr
call-nop=คำนำหน้า-nop
call-nop=suffix-nop
call-nop=คำนำหน้า-ไบต์
call-nop=ต่อท้าย-ไบต์
ระบุช่องว่างภายใน "NOP" 1 ไบต์เมื่อเปลี่ยนการเรียกทางอ้อมเป็นภายในเครื่อง
ฟังก์ชั่นที่กำหนดไว้ foo ผ่านช่อง GOT call-nop=prefix-addr สร้าง "0x67
โทรฟู" call-nop=คำนำหน้า-nop สร้าง "0x90 โทร foo" call-nop=suffix-nop
สร้าง "call foo 0x90" call-nop=คำนำหน้า-ไบต์ สร้าง "ไบต์ โทรศัพท์ ฟู".
call-nop=ต่อท้าย-ไบต์ สร้าง "call foo ไบต์". รองรับสำหรับ i386 และ x86_64

คำหลักอื่นๆ จะถูกละเว้นสำหรับความเข้ากันได้ของ Solaris

-( หอจดหมายเหตุ -)
--start-group หอจดหมายเหตุ --end-group
พื้นที่ปลูก หอจดหมายเหตุ ควรเป็นรายการไฟล์เก็บถาวร อาจเป็นไฟล์ที่ชัดเจน
ชื่อหรือ -l ตัวเลือก

เอกสารที่ระบุจะถูกค้นหาซ้ำ ๆ จนกว่าจะไม่มีการอ้างอิงที่ไม่ได้กำหนดใหม่
สร้าง. โดยปกติ ไฟล์เก็บถาวรจะถูกค้นหาเพียงครั้งเดียวตามลำดับที่ระบุไว้
บนบรรทัดคำสั่ง หากจำเป็นต้องใช้สัญลักษณ์ในไฟล์เก็บถาวรนั้นเพื่อแก้ไข undefined
สัญลักษณ์ที่อ้างถึงโดยวัตถุในไฟล์เก็บถาวรที่ปรากฏขึ้นภายหลังในบรรทัดคำสั่ง
ตัวเชื่อมโยงจะไม่สามารถแก้ไขการอ้างอิงนั้นได้ โดยการจัดกลุ่มเอกสารสำคัญ
พวกเขาทั้งหมดจะถูกค้นหาซ้ำ ๆ จนกว่าการอ้างอิงที่เป็นไปได้ทั้งหมดจะได้รับการแก้ไข

การใช้ตัวเลือกนี้มีต้นทุนประสิทธิภาพที่สำคัญ ควรใช้เฉพาะเมื่อ
มีการอ้างอิงแบบวงกลมที่หลีกเลี่ยงไม่ได้ระหว่างเอกสารสำคัญสองฉบับขึ้นไป

--accept-unknown-input-arch
--no-accept-unknown-input-arch
บอกให้ลิงเกอร์ยอมรับไฟล์อินพุตที่สถาปัตยกรรมไม่สามารถรับรู้ได้ NS
สันนิษฐานว่าผู้ใช้รู้ว่ากำลังทำอะไรและตั้งใจจะเชื่อมโยง
ในไฟล์อินพุตที่ไม่รู้จักเหล่านี้ นี่เป็นพฤติกรรมเริ่มต้นของตัวเชื่อมโยงก่อนหน้านี้
ปล่อย 2.14 พฤติกรรมเริ่มต้นตั้งแต่รุ่น 2.14 เป็นต้นไปคือการปฏิเสธอินพุตดังกล่าว
ไฟล์และอื่น ๆ --accept-unknown-input-arch เพิ่มตัวเลือกเพื่อคืนค่า old
พฤติกรรม.

--ตามความจำเป็น
--ไม่จำเป็น
ตัวเลือกนี้มีผลกับแท็ก ELF DT_NEEDED สำหรับไลบรารีไดนามิกที่กล่าวถึงในคำสั่ง
บรรทัดหลัง --ตามความจำเป็น ตัวเลือก. โดยปกติลิงเกอร์จะเพิ่มแท็ก DT_NEEDED สำหรับ
แต่ละไดนามิกไลบรารีที่กล่าวถึงในบรรทัดคำสั่ง ไม่ว่าไลบรารี่
จำเป็นจริงหรือไม่ --ตามความจำเป็น ทำให้แท็ก DT_NEEDED ถูกปล่อยออกมาสำหรับ .เท่านั้น
ห้องสมุดที่ at ที่ จุด in ลิงค์ ตรงตามสัญลักษณ์ที่ไม่ได้กำหนดที่อ่อนแอ
อ้างอิงจากไฟล์อ็อบเจ็กต์ปกติหรือหากไม่พบไลบรารี่ใน DT_NEEDED
รายการไลบรารีที่จำเป็นอื่น ๆ การอ้างอิงสัญลักษณ์ที่ไม่ได้กำหนดที่ไม่อ่อนแอจากที่อื่น
ห้องสมุดไดนามิกที่จำเป็น ไฟล์อ็อบเจ็กต์หรือไลบรารีที่ปรากฏในบรรทัดคำสั่ง หลังจาก
ห้องสมุดที่เป็นปัญหาจะไม่ส่งผลกระทบว่าห้องสมุดถูกมองว่าจำเป็นหรือไม่ นี่คือ
คล้ายกับกฎสำหรับการแยกไฟล์อ็อบเจ็กต์จากไฟล์เก็บถาวร --ไม่จำเป็น
เรียกคืนพฤติกรรมเริ่มต้น

--add-needed
--no-add-needed
ทั้งสองตัวเลือกนี้เลิกใช้แล้วเนื่องจากความคล้ายคลึงของชื่อกับ
--ตามความจำเป็น และ --ไม่จำเป็น ตัวเลือก. ถูกแทนที่ด้วย
--copy-dt-needed-entries และ --no-copy-dt-needed-entries.

-ยืนยัน คีย์เวิร์ด
ตัวเลือกนี้ถูกละเว้นสำหรับความเข้ากันได้ของ SunOS

-Bdynamic
-dy
-call_shared
ลิงก์กับไลบรารีไดนามิก สิ่งนี้มีความหมายเฉพาะบนแพลตฟอร์มที่แชร์
รองรับห้องสมุด โดยปกติตัวเลือกนี้จะเป็นค่าเริ่มต้นบนแพลตฟอร์มดังกล่าว NS
ตัวแปรต่างๆ ของตัวเลือกนี้มีไว้สำหรับความเข้ากันได้กับระบบต่างๆ คุณอาจ
ใช้ตัวเลือกนี้หลายครั้งบนบรรทัดคำสั่ง: มีผลกับการค้นหาไลบรารี่สำหรับ
-l ตัวเลือกที่ตามมา

-Bgroup
ตั้งค่าสถานะ "DF_1_GROUP" ในรายการ "DT_FLAGS_1" ในส่วนไดนามิก นี้
ทำให้ตัวเชื่อมโยงรันไทม์จัดการการค้นหาในวัตถุนี้และการขึ้นต่อกันเป็น
ดำเนินการภายในกลุ่มเท่านั้น --unresolved-symbols=report-all เป็นนัย นี้
ตัวเลือกมีความหมายเฉพาะบนแพลตฟอร์ม ELF ที่รองรับไลบรารีที่ใช้ร่วมกัน

-Bstatic
-dn
-non_shared
-คงที่
อย่าลิงก์กับไลบรารีที่แชร์ สิ่งนี้มีความหมายเฉพาะบนแพลตฟอร์มที่
รองรับไลบรารีที่ใช้ร่วมกัน ตัวแปรต่างๆ ของตัวเลือกนี้มีไว้สำหรับ
เข้ากันได้กับระบบต่างๆ คุณสามารถใช้ตัวเลือกนี้ได้หลายครั้งบน
บรรทัดคำสั่ง: มีผลกับการค้นหาห้องสมุด -l ตัวเลือกที่ตามมา นี้
ตัวเลือกยังหมายถึง --unresolved-symbols=report-all. สามารถใช้ตัวเลือกนี้กับ
-shared. การทำเช่นนั้นหมายความว่ากำลังสร้างไลบรารีที่ใช้ร่วมกันขึ้นแต่ว่า . ทั้งหมด
การอ้างอิงภายนอกของไลบรารีจะต้องแก้ไขโดยการดึงรายการจาก static
ห้องสมุด

-Bsymbolic
เมื่อสร้างไลบรารีที่ใช้ร่วมกัน ให้ผูกการอ้างอิงกับสัญลักษณ์สากลกับคำจำกัดความ
ภายในไลบรารีที่ใช้ร่วมกัน หากมี โดยปกติ เป็นไปได้สำหรับโปรแกรมที่เชื่อมโยง
กับไลบรารีที่ใช้ร่วมกันเพื่อแทนที่คำจำกัดความภายในไลบรารีที่แบ่งใช้ นี้
สามารถใช้ตัวเลือกกับ --การส่งออกแบบไดนามิก ตัวเลือกเมื่อสร้างตำแหน่ง
ปฏิบัติการอิสระเพื่อผูกการอ้างอิงถึงสัญลักษณ์สากลกับคำจำกัดความภายใน
ปฏิบัติการ ตัวเลือกนี้มีความหมายเฉพาะบนแพลตฟอร์ม ELF ที่รองรับการแชร์
ไลบรารีและตำแหน่งปฏิบัติการอิสระ

-Bsymbolic-ฟังก์ชัน
เมื่อสร้างไลบรารีที่ใช้ร่วมกัน ให้ผูกการอ้างอิงกับสัญลักษณ์ฟังก์ชันโกลบอลกับ
คำจำกัดความภายในไลบรารีที่ใช้ร่วมกัน หากมี ตัวเลือกนี้ยังสามารถใช้กับ
--การส่งออกแบบไดนามิก ตัวเลือกเมื่อสร้างตำแหน่งปฏิบัติการอิสระที่จะผูก
การอ้างอิงถึงสัญลักษณ์ฟังก์ชันโกลบอลไปยังคำจำกัดความภายในไฟล์สั่งการ นี้
ตัวเลือกมีความหมายเฉพาะบนแพลตฟอร์ม ELF ที่รองรับไลบรารีและตำแหน่งที่ใช้ร่วมกัน
โปรแกรมปฏิบัติการอิสระ

--ไดนามิก-รายการ=dynamic-list-file
ระบุชื่อของไฟล์รายการไดนามิกไปยังตัวเชื่อมโยง โดยทั่วไปจะใช้เมื่อ
การสร้างไลบรารีที่ใช้ร่วมกันเพื่อระบุรายการสัญลักษณ์สากลที่มีการอ้างอิง
ไม่ควรผูกกับคำจำกัดความภายในไลบรารีที่แชร์หรือสร้าง
ไฟล์ปฏิบัติการที่เชื่อมโยงแบบไดนามิกเพื่อระบุรายการสัญลักษณ์ที่ควรเพิ่มลงใน
ตารางสัญลักษณ์ในไฟล์ปฏิบัติการ ตัวเลือกนี้มีความหมายเฉพาะบนแพลตฟอร์ม ELF เท่านั้น
ซึ่งรองรับไลบรารีที่ใช้ร่วมกัน

รูปแบบของรายการไดนามิกจะเหมือนกับโหนดเวอร์ชันที่ไม่มีขอบเขตและโหนด
ชื่อ. ดู VERSION for more information.

--ไดนามิก-รายการ-ข้อมูล
รวมสัญลักษณ์ข้อมูลส่วนกลางทั้งหมดในรายการไดนามิก

--ไดนามิก-รายการ-cpp-ใหม่
จัดเตรียมรายการไดนามิกในตัวสำหรับตัวดำเนินการ C ++ ใหม่และลบ มีประโยชน์เป็นหลัก
สำหรับการสร้าง libstdc++ ที่แชร์

--ไดนามิก-รายการ-cpp-typeinfo
จัดเตรียมรายการไดนามิกในตัวสำหรับการระบุประเภทรันไทม์ C++

--check-sections
--no-check-sections
ถามลิงเกอร์ ไม่ เพื่อตรวจสอบที่อยู่ของส่วนหลังจากที่ได้รับมอบหมายเพื่อดูว่า
มีการทับซ้อนกัน โดยปกติลิงเกอร์จะทำการตรวจสอบนี้ และหากพบ
การทับซ้อนกันจะสร้างข้อความแสดงข้อผิดพลาดที่เหมาะสม ลิงเกอร์รู้เรื่อง และ
ให้ค่าเผื่อสำหรับส่วนในการซ้อนทับ สามารถเรียกคืนพฤติกรรมเริ่มต้นได้
โดยใช้สวิตช์บรรทัดคำสั่ง --check-sections. ส่วนที่ทับซ้อนกันมักจะไม่
ตรวจสอบลิงก์ที่ย้ายได้ คุณสามารถบังคับตรวจสอบในกรณีนั้นได้โดยใช้ปุ่ม
--check-sections ตัวเลือก

--copy-dt-needed-entries
--no-copy-dt-needed-entries
ตัวเลือกนี้ส่งผลต่อการรักษาไลบรารีไดนามิกที่อ้างถึงโดยแท็ก DT_NEEDED
ภายใน ไลบรารีไดนามิกของ ELF ที่กล่าวถึงในบรรทัดคำสั่ง โดยปกติลิงเกอร์จะไม่
เพิ่มแท็ก DT_NEEDED ลงในไบนารีเอาต์พุตสำหรับแต่ละไลบรารีที่กล่าวถึงในแท็ก DT_NEEDED
ในไลบรารีไดนามิกอินพุต กับ --copy-dt-needed-entries ระบุไว้ในคำสั่ง
บรรทัดอย่างไรก็ตามไลบรารีไดนามิกที่ตามมาจะมีรายการ DT_NEEDED ของพวกเขา
เพิ่ม พฤติกรรมเริ่มต้นสามารถเรียกคืนได้ด้วย --no-copy-dt-needed-entries.

ตัวเลือกนี้ยังมีผลต่อความละเอียดของสัญลักษณ์ในไลบรารีไดนามิก
กับ --copy-dt-needed-entries ไลบรารีไดนามิกที่กล่าวถึงในบรรทัดคำสั่งจะเป็น
ค้นหาซ้ำ ๆ ตามแท็ก DT_NEEDED ไปยังไลบรารีอื่น ๆ เพื่อ
แก้ไขสัญลักษณ์ที่ต้องการโดยไบนารีเอาต์พุต ด้วยการตั้งค่าเริ่มต้นอย่างไรก็ตาม
การค้นหาไลบรารีไดนามิกที่ตามมาจะหยุดด้วยไลบรารีไดนามิก
ตัวเอง. จะไม่มีการเชื่อมโยง DT_NEEDED เพื่อแก้ไขสัญลักษณ์

--cref
แสดงตารางอ้างอิงโยง หากมีการสร้างไฟล์แมปลิงเกอร์ เครื่องหมายกากบาท
ตารางอ้างอิงถูกพิมพ์ไปยังไฟล์แผนที่ มิฉะนั้นจะพิมพ์บนมาตรฐาน
เอาท์พุต

รูปแบบของตารางเป็นแบบจงใจง่าย จึงสามารถประมวลผลได้ง่ายโดย
สคริปต์หากจำเป็น สัญลักษณ์ถูกพิมพ์ออกมา เรียงตามชื่อ สำหรับแต่ละสัญลักษณ์
รายชื่อไฟล์จะได้รับ หากมีการกำหนดสัญลักษณ์ ไฟล์แรกที่แสดงคือ
ตำแหน่งของคำจำกัดความ หากสัญลักษณ์ถูกกำหนดเป็นค่าทั่วไปแล้วไฟล์ใด ๆ
ซึ่งสิ่งนี้จะเกิดขึ้นต่อไป สุดท้ายไฟล์ใด ๆ ที่อ้างอิงสัญลักษณ์คือ
จดทะเบียน

--no-define-common
ตัวเลือกนี้ยับยั้งการกำหนดที่อยู่ให้กับสัญลักษณ์ทั่วไป บท
คำสั่ง "INHIBIT_COMMON_ALLOCATION" มีผลเช่นเดียวกัน

พื้นที่ปลูก --no-define-common ตัวเลือกช่วยให้แยกการตัดสินใจกำหนดที่อยู่ให้กับ
สัญลักษณ์ทั่วไปจากการเลือกประเภทไฟล์ที่ส่งออก มิฉะนั้นจะไม่สามารถย้ายได้
ประเภทเอาต์พุตบังคับให้กำหนดที่อยู่ให้กับสัญลักษณ์ทั่วไป โดยใช้ --no-define-common
อนุญาตให้กำหนดสัญลักษณ์ทั่วไปที่อ้างอิงจากไลบรารีที่ใช้ร่วมกันได้
ที่อยู่ในโปรแกรมหลักเท่านั้น สิ่งนี้จะกำจัดช่องว่างที่ซ้ำกันที่ไม่ได้ใช้ใน
ห้องสมุดที่ใช้ร่วมกันและยังป้องกันความสับสนที่อาจเกิดขึ้นในการแก้ไขข้อผิดพลาด
ซ้ำกันเมื่อมีโมดูลไดนามิกจำนวนมากพร้อมเส้นทางการค้นหาเฉพาะสำหรับ
ความละเอียดสัญลักษณ์รันไทม์

--defsym=เครื่องหมาย=การแสดงออก
สร้างสัญลักษณ์สากลในไฟล์เอาท์พุตซึ่งมีแอดเดรสแบบสัมบูรณ์ที่กำหนดโดย
การแสดงออก. คุณสามารถใช้ตัวเลือกนี้ได้หลายครั้งเท่าที่จำเป็นเพื่อกำหนดหลายรายการ
สัญลักษณ์ในบรรทัดคำสั่ง รองรับรูปแบบเลขคณิตที่จำกัดสำหรับ
การแสดงออก ในบริบทนี้: คุณอาจให้ค่าคงที่ฐานสิบหกหรือชื่อของ an
สัญลักษณ์ที่มีอยู่ หรือใช้ "+" และ "-" เพื่อเพิ่มหรือลบค่าคงที่ฐานสิบหกหรือ
สัญลักษณ์ หากคุณต้องการนิพจน์ที่ซับซ้อนกว่านี้ ให้ลองใช้คำสั่งลิงเกอร์
ภาษาจากสคริปต์ บันทึก: ไม่ควรมีช่องว่างระหว่าง เครื่องหมายที่
เครื่องหมายเท่ากับ ("="), และ การแสดงออก.

--demangle[=สไตล์]
--no-demangle
ตัวเลือกเหล่านี้ควบคุมว่าจะแยกชื่อสัญลักษณ์ในข้อความแสดงข้อผิดพลาดและอื่น ๆ หรือไม่
เอาท์พุท เมื่อตัวเชื่อมโยงถูกบอกให้แยกส่วน มันพยายามนำเสนอชื่อสัญลักษณ์ใน a
แฟชั่นที่อ่านได้: มันตัดเครื่องหมายขีดล่างชั้นนำหากถูกใช้โดยไฟล์อ็อบเจ็กต์
รูปแบบและแปลงชื่อสัญลักษณ์ C ++ ที่บิดเบี้ยวเป็นชื่อที่ผู้ใช้อ่านได้ แตกต่าง
คอมไพเลอร์มีรูปแบบการจัดการที่แตกต่างกัน อาร์กิวเมนต์รูปแบบ demanling ที่เป็นตัวเลือกสามารถ
ใช้เพื่อเลือกรูปแบบการแยกส่วนที่เหมาะสมสำหรับคอมไพเลอร์ของคุณ ลิงเกอร์จะ
demangle โดยค่าเริ่มต้นเว้นแต่ตัวแปรสภาพแวดล้อม COLLECT_NO_DEMANGLE ถูกตั้งค่า เหล่านี้
อาจใช้ตัวเลือกเพื่อแทนที่ค่าเริ่มต้น

-Iไฟล์
--ไดนามิก-ลิงเกอร์=ไฟล์
ตั้งชื่อตัวเชื่อมโยงแบบไดนามิก สิ่งนี้มีความหมายเฉพาะเมื่อสร้าง
โปรแกรมปฏิบัติการ ELF ที่เชื่อมโยงแบบไดนามิก ตัวเชื่อมโยงแบบไดนามิกเริ่มต้นมักจะถูกต้อง
อย่าใช้สิ่งนี้เว้นแต่คุณจะรู้ว่าคุณกำลังทำอะไรอยู่

--no-ไดนามิก-ลิงเกอร์
เมื่อสร้างไฟล์ปฏิบัติการ ให้ละเว้นคำขอสำหรับไดนามิกลิงเกอร์ที่จะใช้ที่
เวลาในการโหลด สิ่งนี้มีความหมายเฉพาะสำหรับไฟล์เรียกทำงานของ ELF ที่มีไดนามิก
การย้ายถิ่นฐาน และมักจะต้องใช้รหัสจุดเริ่มต้นที่สามารถประมวลผลสิ่งเหล่านี้ได้
การย้ายถิ่นฐาน

--ร้ายแรง-คำเตือน
--ไม่อันตราย-คำเตือน
ถือว่าคำเตือนทั้งหมดเป็นข้อผิดพลาด พฤติกรรมเริ่มต้นสามารถเรียกคืนได้ด้วย option
--ไม่อันตราย-คำเตือน.

--force-exe-คำต่อท้าย
ตรวจสอบให้แน่ใจว่าไฟล์เอาต์พุตมีส่วนต่อท้าย .exe

หากไฟล์เอาท์พุตที่เชื่อมโยงอย่างสมบูรณ์ซึ่งสร้างสำเร็จแล้วไม่มี ".exe" หรือ ".dll"
คำต่อท้าย ตัวเลือกนี้บังคับให้ตัวเชื่อมโยงคัดลอกไฟล์เอาต์พุตไปยังชื่อเดียวกัน
ด้วยคำต่อท้าย ".exe" ตัวเลือกนี้มีประโยชน์เมื่อใช้ยูนิกซ์ makefiles ที่ไม่ได้แก้ไขบน a
โฮสต์ Microsoft Windows เนื่องจาก Windows บางเวอร์ชันจะไม่เรียกใช้อิมเมจเว้นแต่ว่า
ลงท้ายด้วย ".exe"

--gc-sections
--no-gc-sections
เปิดใช้งานการรวบรวมขยะของส่วนอินพุตที่ไม่ได้ใช้ ถูกละเลยในเป้าหมายที่ทำ
ไม่สนับสนุนตัวเลือกนี้ พฤติกรรมเริ่มต้น (ของการไม่ดำเนินการขยะนี้
คอลเลกชัน) สามารถเรียกคืนได้โดยการระบุ --no-gc-sections บนบรรทัดคำสั่ง บันทึก
รองรับการรวบรวมขยะสำหรับเป้าหมายรูปแบบ COFF และ PE แต่
การดำเนินการในปัจจุบันถือเป็นการทดลอง

--gc-sections ตัดสินใจว่าจะใช้ส่วนป้อนข้อมูลใดโดยการตรวจสอบสัญลักษณ์และ
การย้ายถิ่นฐาน ส่วนที่มีสัญลักษณ์รายการและทุกส่วนที่มี
สัญลักษณ์ที่ไม่ได้กำหนดบนบรรทัดคำสั่งจะถูกเก็บไว้ เช่นเดียวกับส่วนต่างๆ ที่มี
สัญลักษณ์ที่อ้างอิงโดยวัตถุไดนามิก โปรดทราบว่าเมื่อสร้างไลบรารีที่ใช้ร่วมกัน
ลิงเกอร์ต้องถือว่ามีการอ้างอิงสัญลักษณ์ที่มองเห็นได้ เมื่อชุดเริ่มต้นของ .นี้
ได้กำหนดส่วนแล้ว ตัวเชื่อมโยงจะทำเครื่องหมายซ้ำๆ ว่าใช้ส่วนใดส่วนหนึ่ง
อ้างอิงโดยการย้ายถิ่นฐานของพวกเขา ดู --รายการ และ --ไม่ได้กำหนด.

ตัวเลือกนี้สามารถตั้งค่าได้เมื่อทำการเชื่อมโยงบางส่วน (เปิดใช้งานด้วย option -r) ในเรื่องนี้
กรณีที่รากของสัญลักษณ์ที่เก็บไว้จะต้องระบุอย่างชัดเจนโดย an --รายการ or
--ไม่ได้กำหนด ตัวเลือกหรือโดยคำสั่ง "ENTRY" ในสคริปต์ตัวเชื่อมโยง

--print-gc-sections
--no-print-gc-sections
แสดงรายการส่วนทั้งหมดที่ถูกลบโดยการรวบรวมขยะ รายชื่อพิมพ์บน stderr
ตัวเลือกนี้จะมีผลก็ต่อเมื่อเปิดใช้งานการรวบรวมขยะผ่านทาง
--gc-sections) ตัวเลือก. ลักษณะการทำงานเริ่มต้น (ของการไม่แสดงรายการส่วนที่เป็น
ลบออก) สามารถเรียกคืนได้โดยระบุ --no-print-gc-sections บนบรรทัดคำสั่ง

--print-output-รูปแบบ
พิมพ์ชื่อของรูปแบบเอาต์พุตเริ่มต้น (อาจได้รับอิทธิพลจาก command-line . อื่นๆ
ตัวเลือก). นี่คือสตริงที่จะปรากฏในสคริปต์ตัวเชื่อมโยง "OUTPUT_FORMAT"
คำสั่ง

--print-หน่วยความจำ-การใช้งาน
พิมพ์ขนาดที่ใช้ ขนาดรวม และขนาดที่ใช้ของขอบเขตหน่วยความจำที่สร้างด้วย หน่วยความจำ
สั่งการ. สิ่งนี้มีประโยชน์สำหรับเป้าหมายที่ฝังไว้เพื่อดูจำนวนฟรีอย่างรวดเร็ว
หน่วยความจำ. รูปแบบของผลลัพธ์มีหนึ่งบรรทัดแรกและหนึ่งบรรทัดต่อภูมิภาค มันคือ
ทั้งที่มนุษย์อ่านได้และแยกวิเคราะห์ได้ง่ายด้วยเครื่องมือ นี่คือตัวอย่างผลลัพธ์:

พื้นที่หน่วยความจำ ขนาดที่ใช้ ขนาดพื้นที่ % อายุที่ใช้
ROM: 256 KB 1 MB 25.00%
แรม: 32B 2GB 0.00%

--ช่วยด้วย
พิมพ์สรุปตัวเลือกบรรทัดคำสั่งบนเอาต์พุตมาตรฐานและออก

--เป้าหมาย-ช่วยเหลือ
พิมพ์สรุปตัวเลือกเฉพาะของเป้าหมายทั้งหมดบนเอาต์พุตมาตรฐานและการออก

-แผนที่=mapfile
พิมพ์ลิงค์แผนที่ไปยังไฟล์ mapfile. ดูคำอธิบายของ -M ตัวเลือกด้านบน

--ไม่เก็บความทรงจำ
ld ปกติจะปรับความเร็วให้เหมาะสมกว่าการใช้หน่วยความจำโดยแคชตารางสัญลักษณ์ของ
ไฟล์อินพุตในหน่วยความจำ ตัวเลือกนี้บอก ld เพื่อเพิ่มประสิทธิภาพการใช้หน่วยความจำแทน by
อ่านตารางสัญลักษณ์ซ้ำตามความจำเป็น นี่อาจจำเป็นถ้า ld หมด
พื้นที่หน่วยความจำขณะเชื่อมโยงไฟล์ปฏิบัติการขนาดใหญ่

--no-undefined
-z defs
รายงานการอ้างอิงสัญลักษณ์ที่ไม่ได้รับการแก้ไขจากไฟล์อ็อบเจ็กต์ปกติ นี้จะทำแม้ว่า
ตัวเชื่อมโยงกำลังสร้างไลบรารีที่ใช้ร่วมกันที่ไม่ใช่สัญลักษณ์ สวิตช์
--[ไม่-]allow-shlib-undefined ควบคุมพฤติกรรมการรายงานที่ไม่ได้รับการแก้ไข
ข้อมูลอ้างอิงที่พบในไลบรารีที่แชร์ซึ่งเชื่อมโยงอยู่

--allow-หลายคำจำกัดความ
-z muldefs
โดยปกติเมื่อมีการกำหนดสัญลักษณ์หลายครั้ง ตัวเชื่อมโยงจะรายงานอันตรายถึงชีวิต
ข้อผิดพลาด. ตัวเลือกเหล่านี้อนุญาตให้ใช้คำจำกัดความได้หลายแบบและจะใช้คำจำกัดความแรก

--allow-shlib-undefined
--no-allow-shlib-undefined
อนุญาตหรือไม่อนุญาตสัญลักษณ์ที่ไม่ได้กำหนดในไลบรารีที่แบ่งใช้ สวิตช์นี้คล้ายกับ
--no-undefined เว้นแต่จะเป็นตัวกำหนดพฤติกรรมเมื่อสัญลักษณ์ที่ไม่ได้กำหนดคือ
ในไลบรารีที่ใช้ร่วมกันแทนที่จะเป็นไฟล์อ็อบเจ็กต์ปกติ ไม่กระทบกระเทือนอย่างไร
สัญลักษณ์ที่ไม่ได้กำหนดในไฟล์อ็อบเจ็กต์ปกติจะได้รับการจัดการ

พฤติกรรมเริ่มต้นคือการรายงานข้อผิดพลาดสำหรับสัญลักษณ์ที่ไม่ได้กำหนดที่อ้างอิงใน
ไลบรารีที่แบ่งใช้หากตัวเชื่อมโยงถูกใช้เพื่อสร้างไฟล์เรียกทำงาน แต่เพื่ออนุญาต
หากมีการใช้ตัวเชื่อมโยงเพื่อสร้างไลบรารีที่แชร์

เหตุผลในการอนุญาตการอ้างอิงสัญลักษณ์ที่ไม่ได้กำหนดในไลบรารีที่ใช้ร่วมกันที่ระบุที่
เวลาเชื่อมโยงคือ:

· ไลบรารีที่ใช้ร่วมกันที่ระบุในเวลาลิงก์อาจไม่เหมือนกับไลบรารีที่แชร์
ใช้ได้ในขณะโหลด ดังนั้นสัญลักษณ์อาจแก้ไขได้จริงในขณะโหลด

· มีระบบปฏิบัติการบางระบบ เช่น BeOS และ HPPA ที่มีสัญลักษณ์ที่ไม่ได้กำหนดใน
ห้องสมุดที่ใช้ร่วมกันเป็นเรื่องปกติ

เคอร์เนล BeOS สำหรับตัวอย่างแพทช์ไลบรารีที่ใช้ร่วมกันในเวลาโหลดเพื่อเลือก
ฟังก์ชันใดเหมาะสมที่สุดสำหรับสถาปัตยกรรมปัจจุบัน นี่คือ
ใช้ตัวอย่างเช่นเพื่อเลือกฟังก์ชัน memset ที่เหมาะสมแบบไดนามิก

--no-undefined-version
โดยปกติเมื่อสัญลักษณ์มีเวอร์ชันที่ไม่ได้กำหนด ตัวเชื่อมโยงจะไม่สนใจมัน นี้
ตัวเลือกไม่อนุญาตให้ใช้สัญลักษณ์ที่มีเวอร์ชันที่ไม่ได้กำหนดและจะออกข้อผิดพลาดร้ายแรง
แทน.

--default-symver
สร้างและใช้เวอร์ชันสัญลักษณ์เริ่มต้น (soname) สำหรับสัญลักษณ์ที่ส่งออกที่ไม่มีเวอร์ชัน

--default-นำเข้า-symver
สร้างและใช้เวอร์ชันสัญลักษณ์เริ่มต้น (soname) สำหรับสัญลักษณ์นำเข้าที่ไม่มีเวอร์ชัน

--no-เตือน-ไม่ตรงกัน
ปกติ ld จะเกิดข้อผิดพลาดหากคุณพยายามเชื่อมโยงไฟล์อินพุตที่เป็น
ไม่ตรงกันด้วยเหตุผลบางอย่าง บางทีอาจเป็นเพราะว่าถูกรวบรวมมาเพื่อต่างกัน
โปรเซสเซอร์หรือ endiannesses ที่แตกต่างกัน ตัวเลือกนี้บอก ld ที่ควร
อนุญาตข้อผิดพลาดที่เป็นไปได้ดังกล่าวอย่างเงียบ ๆ ควรใช้ตัวเลือกนี้ด้วยความระมัดระวังใน
กรณีที่คุณได้ดำเนินการพิเศษบางอย่างเพื่อให้แน่ใจว่าข้อผิดพลาดของตัวเชื่อมโยงคือ
ไม่เหมาะสม

--no-warn-search-mismatch
ปกติ ld จะแจ้งเตือนหากพบห้องสมุดที่เข้ากันไม่ได้ระหว่างห้องสมุด
ค้นหา. ตัวเลือกนี้ปิดเสียงคำเตือน

--no-whole-archive
ปิดเอฟเฟกต์ของ --ทั้งคลัง ตัวเลือกสำหรับไฟล์เก็บถาวรที่ตามมา

--noinhibit-exec
เก็บไฟล์เอาต์พุตที่เรียกใช้งานได้ทุกครั้งที่ยังใช้งานได้ โดยปกติลิงเกอร์
จะไม่สร้างไฟล์เอาต์พุตหากพบข้อผิดพลาดระหว่างกระบวนการลิงก์ มัน
ออกโดยไม่เขียนไฟล์เอาท์พุตเมื่อเกิดปัญหาใดๆ ขึ้น

-nostdlib
เฉพาะไดเร็กทอรีไลบรารีการค้นหาที่ระบุอย่างชัดเจนในบรรทัดคำสั่ง ห้องสมุด
ไดเร็กทอรีที่ระบุในสคริปต์ตัวเชื่อมโยง (รวมถึงสคริปต์ตัวเชื่อมโยงที่ระบุใน
บรรทัดคำสั่ง) จะถูกละเว้น

--oformat=รูปแบบการส่งออก
ld อาจได้รับการกำหนดค่าให้รองรับไฟล์อ็อบเจ็กต์มากกว่าหนึ่งประเภท ถ้าคุณ ld is
กำหนดค่าด้วยวิธีนี้ คุณสามารถใช้ --oformat ตัวเลือกเพื่อระบุรูปแบบไบนารีสำหรับ
ไฟล์อ็อบเจ็กต์เอาต์พุต แม้ว่า ld ได้รับการกำหนดค่าเพื่อรองรับอ็อบเจ็กต์ทางเลือก
รูปแบบ คุณไม่จำเป็นต้องระบุสิ่งนี้ เนื่องจาก ld ควรกำหนดค่าให้ผลิต
เป็นรูปแบบเอาต์พุตเริ่มต้นซึ่งเป็นรูปแบบปกติที่สุดในแต่ละเครื่อง รูปแบบการส่งออก คือ
สตริงข้อความ ชื่อของรูปแบบเฉพาะที่สนับสนุนโดยไลบรารี BFD (คุณสามารถ
แสดงรายการรูปแบบไบนารีที่มีด้วย objdump -i.) คำสั่งสคริปต์
"OUTPUT_FORMAT" ยังสามารถระบุรูปแบบเอาต์พุตได้ แต่ตัวเลือกนี้จะแทนที่รูปแบบดังกล่าว

-พาย
--pic-ปฏิบัติการ
สร้างตำแหน่งปฏิบัติการอิสระ ขณะนี้รองรับเฉพาะ ELF
แพลตฟอร์ม ตำแหน่ง executables อิสระคล้ายกับไลบรารีที่ใช้ร่วมกันในนั้น
พวกมันถูกย้ายโดยไดนามิกลิงค์เกอร์ไปยังที่อยู่เสมือนที่ระบบปฏิบัติการเลือก
พวกเขา (ซึ่งสามารถแตกต่างกันระหว่างการวิงวอน) เช่นเดียวกับไฟล์ปฏิบัติการที่เชื่อมโยงแบบไดนามิกทั่วไป
พวกเขาสามารถดำเนินการได้และสัญลักษณ์ที่กำหนดไว้ในปฏิบัติการไม่สามารถแทนที่โดย
ห้องสมุดที่ใช้ร่วมกัน

-qmagic
ตัวเลือกนี้ถูกละเว้นสำหรับความเข้ากันได้ของ Linux

-Qy ตัวเลือกนี้ถูกละเว้นสำหรับความเข้ากันได้ของ SVR4

--ผ่อนคลาย
--ไม่ผ่อนคลาย
ตัวเลือกที่มีเอฟเฟกต์ขึ้นอยู่กับเครื่อง ตัวเลือกนี้ได้รับการสนับสนุนเพียงไม่กี่
เป้าหมาย

ในบางแพลตฟอร์ม --ผ่อนคลาย ตัวเลือกดำเนินการเฉพาะเป้าหมาย การปรับให้เหมาะสมทั่วโลก
ที่จะเกิดขึ้นได้เมื่อตัวเชื่อมโยงแก้ไขที่อยู่ในโปรแกรม เช่น
โหมดที่อยู่แบบผ่อนคลาย การสังเคราะห์คำสั่งใหม่ การเลือกเวอร์ชันที่สั้นลงของ
คำสั่งปัจจุบัน และการรวมค่าคงที่

ในบางแพลตฟอร์ม เวลาลิงก์เหล่านี้ การปรับให้เหมาะสมทั่วโลกอาจทำให้การดีบักเชิงสัญลักษณ์ของ
ผลลัพธ์ที่ปฏิบัติการเป็นไปไม่ได้ เป็นที่ทราบกันดีว่าเป็นกรณีของมัตสึชิตะ
โปรเซสเซอร์ตระกูล MN10200 และ MN10300

บนแพลตฟอร์มที่ไม่รองรับ --ผ่อนคลาย เป็นที่ยอมรับ แต่ละเลย

บนแพลตฟอร์มที่ --ผ่อนคลาย ได้รับการยอมรับตัวเลือก --ไม่ผ่อนคลาย สามารถใช้เพื่อปิดการใช้งาน
คุณลักษณะ

--retain-symbols-file=ชื่อไฟล์
รักษา เท่านั้น สัญลักษณ์ที่ระบุไว้ในไฟล์ ชื่อไฟล์, ละทิ้งอื่น ๆ ทั้งหมด. ชื่อไฟล์
เป็นเพียงไฟล์แบบแฟลตซึ่งมีชื่อสัญลักษณ์หนึ่งชื่อต่อบรรทัด ตัวเลือกนี้โดยเฉพาะ
มีประโยชน์ในสภาพแวดล้อม (เช่น VxWorks) โดยที่ตารางสัญลักษณ์สากลขนาดใหญ่คือ
สะสมไปเรื่อย ๆ เพื่อประหยัดหน่วยความจำรันไทม์

--retain-สัญลักษณ์-ไฟล์ ทำ ไม่ ละทิ้งสัญลักษณ์ที่ไม่ได้กำหนดหรือสัญลักษณ์ที่จำเป็นสำหรับ
การย้ายถิ่นฐาน

ระบุได้เฉพาะ --retain-สัญลักษณ์-ไฟล์ ครั้งหนึ่งในบรรทัดคำสั่ง มันแทนที่ -s
และ -S.

-rpath=dir
เพิ่มไดเร็กทอรีในพาธการค้นหาไลบรารีรันไทม์ ใช้เมื่อเชื่อมโยงเอลฟ์
ปฏิบัติการได้ด้วยวัตถุที่ใช้ร่วมกัน ทั้งหมด -rpath อาร์กิวเมนต์จะถูกต่อและส่งต่อไปยัง
ตัวเชื่อมโยงรันไทม์ ซึ่งใช้พวกมันเพื่อค้นหาอ็อบเจ็กต์ที่ใช้ร่วมกัน ณ รันไทม์ NS -rpath
ตัวเลือกยังใช้เมื่อค้นหาวัตถุที่ใช้ร่วมกันซึ่งจำเป็นสำหรับวัตถุที่ใช้ร่วมกัน
รวมอยู่ในลิงค์อย่างชัดเจน; ดูคำอธิบายของ -rpath-ลิงค์ ตัวเลือก. ถ้า
-rpath ไม่ได้ใช้เมื่อเชื่อมโยงไฟล์ปฏิบัติการ ELF เนื้อหาของสิ่งแวดล้อม
ตัวแปร "LD_RUN_PATH" จะถูกใช้หากมีการกำหนดไว้

พื้นที่ปลูก -rpath อาจใช้ตัวเลือกนี้บน SunOS โดยค่าเริ่มต้น บน SunOS ตัวเชื่อมโยงจะ
สร้างเส้นทางการค้นหารันไทม์จากทั้งหมด -L ตัวเลือกที่ได้รับ ถ้า -rpath ตัวเลือก
ถูกใช้ เส้นทางการค้นหารันไทม์จะถูกสร้างขึ้นโดยใช้คำสั่ง . เท่านั้น -rpath ตัวเลือก
ละเว้น -L ตัวเลือก. สิ่งนี้มีประโยชน์เมื่อใช้ gcc ซึ่งเพิ่มจำนวนมาก -L
ตัวเลือกที่อาจอยู่ในระบบไฟล์ที่ต่อเชื่อมกับ NFS

เพื่อความเข้ากันได้กับตัวเชื่อมโยง ELF อื่นๆ ถ้า -R ตัวเลือกตามด้วยไดเร็กทอรี
ชื่อ แทนที่จะเป็นชื่อไฟล์ จะถือว่าเป็น -rpath ตัวเลือก

-rpath-link=dir
เมื่อใช้ ELF หรือ SunOS ไลบรารีที่ใช้ร่วมกันหนึ่งอาจต้องการอีกไลบรารีหนึ่ง สิ่งนี้เกิดขึ้นเมื่อ an
ลิงก์ "ld -shared" รวมไลบรารีที่ใช้ร่วมกันเป็นหนึ่งในไฟล์อินพุต

เมื่อตัวเชื่อมโยงพบการพึ่งพาดังกล่าวเมื่อทำแบบไม่แบ่งใช้, ไม่สามารถย้ายได้
ลิงก์จะพยายามค้นหาไลบรารีที่ใช้ร่วมกันที่จำเป็นโดยอัตโนมัติและรวมไว้ด้วย
ในลิงก์หากไม่ได้ระบุไว้อย่างชัดเจน ในกรณีเช่นนี้ -rpath-ลิงค์ ตัวเลือก
ระบุไดเร็กทอรีชุดแรกที่จะค้นหา NS -rpath-ลิงค์ ตัวเลือกอาจระบุ
ลำดับของชื่อไดเร็กทอรีโดยการระบุรายชื่อที่คั่นด้วย
เครื่องหมายทวิภาคหรือโดยปรากฏหลายครั้ง

ควรใช้ตัวเลือกนี้ด้วยความระมัดระวัง เนื่องจากจะแทนที่เส้นทางการค้นหาที่อาจมี
ถูกรวบรวมอย่างหนักในไลบรารีที่ใช้ร่วมกัน ในกรณีเช่นนี้ สามารถใช้ได้
เส้นทางการค้นหาที่ต่างจากตัวเชื่อมโยงรันไทม์โดยไม่ได้ตั้งใจ

ตัวเชื่อมโยงใช้เส้นทางการค้นหาต่อไปนี้เพื่อค้นหาไลบรารีที่แบ่งใช้ที่จำเป็น:

1. ไดเร็กทอรีใด ๆ ที่ระบุโดย -rpath-ลิงค์ ตัวเลือก

2. ไดเร็กทอรีใด ๆ ที่ระบุโดย -rpath ตัวเลือก. ความแตกต่างระหว่าง -rpath และ
-rpath-ลิงค์ คือไดเร็กทอรีที่ระบุโดย -rpath ตัวเลือกรวมอยู่ใน
รันไทม์ได้และใช้งานในขณะที่ -rpath-ลิงค์ ตัวเลือกมีผลเท่านั้น
ในเวลาลิงค์ กำลังค้นหา -rpath ด้วยวิธีนี้รองรับเฉพาะตัวเชื่อมโยงดั้งเดิมและ
ตัวเชื่อมโยงข้ามที่ได้รับการกำหนดค่าด้วย --with-sysroot ตัวเลือก

3. บนระบบ ELF สำหรับตัวเชื่อมโยงดั้งเดิม ถ้า -rpath และ -rpath-ลิงค์ ตัวเลือกคือ
ไม่ได้ใช้ ค้นหาเนื้อหาของตัวแปรสภาพแวดล้อม "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 มีอยู่ รายการ
ของไดเร็กทอรีที่พบในไฟล์นั้น

หากไม่พบไลบรารีที่ใช้ร่วมกันที่จำเป็น ตัวเชื่อมโยงจะออกคำเตือนและ
ต่อด้วยลิงค์

-shared
-Bshareable
สร้างห้องสมุดที่ใช้ร่วมกัน ปัจจุบันรองรับเฉพาะ ELF, XCOFF และ SunOS
แพลตฟอร์ม บน SunOS ตัวเชื่อมโยงจะสร้างไลบรารีที่แชร์โดยอัตโนมัติหาก -e
ไม่ได้ใช้ตัวเลือกและมีสัญลักษณ์ที่ไม่ได้กำหนดในลิงก์

--sort-ธรรมดา
--sort-common=จากน้อยไปมาก
--sort-common=มากไปหาน้อย
ตัวเลือกนี้บอก ld เพื่อจัดเรียงสัญลักษณ์ทั่วไปโดยการจัดตำแหน่งจากน้อยไปมากหรือ
เรียงลำดับจากมากไปหาน้อยเมื่อวางไว้ในส่วนเอาต์พุตที่เหมาะสม สัญลักษณ์
การจัดตำแหน่งที่พิจารณาคือสิบหกไบต์หรือใหญ่กว่า, แปดไบต์, สี่ไบต์, สองไบต์และ
หนึ่งไบต์ เพื่อป้องกันช่องว่างระหว่างสัญลักษณ์อันเนื่องมาจากข้อจำกัดในการจัดตำแหน่ง ถ้าไม่
มีการระบุลำดับการจัดเรียง จากนั้นจะถือว่าลำดับจากมากไปน้อย

--sort-section=ชื่อ
ตัวเลือกนี้จะใช้ "SORT_BY_NAME" กับรูปแบบส่วนไวด์การ์ดทั้งหมดในตัวลิงก์
ต้นฉบับ

--sort-section=การจัดตำแหน่ง
ตัวเลือกนี้จะใช้ "SORT_BY_ALIGNMENT" กับรูปแบบส่วนสัญลักษณ์แทนทั้งหมดใน
สคริปต์ตัวเชื่อมโยง

--แยกทีละไฟล์[=ขนาด]
คล้ายกับ --แยกโดย-reloc แต่สร้างส่วนเอาต์พุตใหม่สำหรับไฟล์อินพุตแต่ละไฟล์เมื่อ
ขนาด ถึง. ขนาด ค่าเริ่มต้นเป็นขนาด 1 หากไม่ได้กำหนดไว้

--แยกโดย-ย้าย[=นับ]
พยายามสร้างส่วนพิเศษในไฟล์เอาท์พุตเพื่อให้ไม่มีส่วนเอาต์พุตเดียวใน
ไฟล์มีมากกว่า นับ การย้ายถิ่นฐาน สิ่งนี้มีประโยชน์เมื่อสร้างขนาดใหญ่
ไฟล์ที่ย้ายได้สำหรับการดาวน์โหลดลงในเคอร์เนลตามเวลาจริงด้วยวัตถุ COFF
รูปแบบไฟล์; เนื่องจาก COFF ไม่สามารถแสดงมากกว่า 65535 การย้ายถิ่นฐานในครั้งเดียว
ส่วน. โปรดทราบว่าการดำเนินการนี้จะไม่สามารถใช้งานได้กับรูปแบบไฟล์อ็อบเจ็กต์ที่ไม่
สนับสนุนส่วนโดยพลการ ตัวเชื่อมโยงจะไม่แยกส่วนอินพุตแต่ละส่วน
สำหรับการแจกจ่ายซ้ำ ดังนั้นหากส่วนอินพุตเดียวมีมากกว่า นับ การย้ายถิ่นฐาน
ส่วนผลลัพธ์หนึ่งส่วนจะมีการย้ายที่ตั้งจำนวนมากนั้น นับ ค่าเริ่มต้นเป็นค่าของ
32768.

--สถิติ
คำนวณและแสดงสถิติเกี่ยวกับการทำงานของลิงเกอร์ เช่น การดำเนินการ
เวลาและการใช้หน่วยความจำ

--sysroot=ไดเรกทอรี
ใช้ ไดเรกทอรี เป็นตำแหน่งของ sysroot แทนที่ค่าเริ่มต้นเวลากำหนดค่า
ตัวเลือกนี้รองรับเฉพาะตัวเชื่อมโยงที่กำหนดค่าโดยใช้ --with-sysroot.

--traditional-รูปแบบ
สำหรับบางเป้าหมาย ผลลัพธ์ของ ld แตกต่างไปจากผลลัพธ์บางอย่าง
ตัวเชื่อมโยงที่มีอยู่ สวิตช์นี้ร้องขอ ld เพื่อใช้รูปแบบดั้งเดิมแทน

ตัวอย่างเช่น บน SunOS ld รวมรายการที่ซ้ำกันในตารางสตริงสัญลักษณ์ นี้
สามารถลดขนาดของไฟล์เอาต์พุตที่มีข้อมูลการดีบักแบบเต็มได้กว่า 30
เปอร์เซ็นต์ ขออภัย โปรแกรม SunOS "dbx" ไม่สามารถอ่านโปรแกรมผลลัพธ์ได้
("gdb" ไม่มีปัญหา) NS --traditional-รูปแบบ สวิตช์บอก ld ที่จะไม่รวมกัน
รายการที่ซ้ำกัน

--section-start=ชื่อส่วน=org
ค้นหาส่วนในไฟล์เอาต์พุตตามที่อยู่ที่กำหนดโดย org. คุณอาจใช้
ตัวเลือกนี้หลายครั้งเท่าที่จำเป็นเพื่อค้นหาหลายส่วนในคำสั่ง
เส้น org ต้องเป็นจำนวนเต็มเลขฐานสิบหกเดียว เพื่อความเข้ากันได้กับตัวเชื่อมโยงอื่น ๆ
คุณอาจละเว้นนำหน้า 0x มักจะเกี่ยวข้องกับค่าเลขฐานสิบหก บันทึก: มี
ไม่ควรมีช่องว่างระหว่าง ชื่อส่วน, เครื่องหมายเท่ากับ ("="), และ org.

-Tbss=org
-Tdata=org
-Ttext=org
เหมือนกับ --ส่วน-เริ่มต้นโดยมี ".bss", ".data" หรือ ".text" เป็น ชื่อส่วน.

-Ttext-segment=org
เมื่อสร้างไฟล์ปฏิบัติการ ELF จะกำหนดที่อยู่ของไบต์แรกของข้อความ
ส่วน

-Trodata-เซกเมนต์=org
เมื่อสร้างอ็อบเจกต์ปฏิบัติการหรือแชร์ของ ELF สำหรับเป้าหมายที่ data แบบอ่านอย่างเดียว
อยู่ในส่วนของตัวเองแยกจากข้อความปฏิบัติการ มันจะตั้งค่าที่อยู่ของ
ไบต์แรกของกลุ่มข้อมูลแบบอ่านอย่างเดียว

-Tldata-เซ็กเมนต์=org
เมื่อสร้างอ็อบเจ็กต์ปฏิบัติการหรือแชร์ของ ELF สำหรับโมเดลหน่วยความจำขนาดกลาง x86-64 มัน
จะตั้งค่าที่อยู่ของไบต์แรกของส่วน ldata

--unresolved-สัญลักษณ์=วิธี
กำหนดวิธีจัดการกับสัญลักษณ์ที่ไม่ได้รับการแก้ไข มีสี่ค่าที่เป็นไปได้สำหรับ
วิธี:

ละเว้นทั้งหมด
อย่ารายงานสัญลักษณ์ใด ๆ ที่ยังไม่ได้แก้ไข

รายงานทั้งหมด
รายงานสัญลักษณ์ที่ยังไม่ได้แก้ไขทั้งหมด นี่คือค่าเริ่มต้น

ละเว้นในวัตถุไฟล์
รายงานสัญลักษณ์ที่ยังไม่ได้แก้ไขซึ่งมีอยู่ในไลบรารีที่ใช้ร่วมกัน แต่ไม่ต้องสนใจ
ถ้ามาจากไฟล์อ็อบเจ็กต์ปกติ

ละเว้นในการแบ่งใช้ libs
รายงานสัญลักษณ์ที่ไม่ได้รับการแก้ไขซึ่งมาจากไฟล์อ็อบเจ็กต์ปกติ แต่ไม่ต้องสนใจหาก
มาจากห้องสมุดที่ใช้ร่วมกัน สิ่งนี้มีประโยชน์เมื่อสร้างไดนามิก
ไบนารีและเป็นที่ทราบกันว่าไลบรารีที่ใช้ร่วมกันทั้งหมดที่ควรอ้างอิง
รวมอยู่ในบรรทัดคำสั่งของลิงเกอร์

พฤติกรรมสำหรับไลบรารีที่ใช้ร่วมกันด้วยตัวเองสามารถควบคุมได้โดย
--[ไม่-]allow-shlib-undefined ตัวเลือก

โดยปกติตัวเชื่อมโยงจะสร้างข้อความแสดงข้อผิดพลาดสำหรับแต่ละสัญลักษณ์ที่ยังไม่ได้แก้ไขที่รายงาน
แต่ทางเลือก --warn-unresolved-สัญลักษณ์ สามารถเปลี่ยนเป็นคำเตือนได้

--dll-verbose
--verbose[=จำนวน]
แสดงหมายเลขเวอร์ชันสำหรับ ld และแสดงรายการการจำลองลิงเกอร์ที่รองรับ แสดง
ไฟล์อินพุตใดที่สามารถเปิดได้และไม่สามารถเปิดได้ แสดงสคริปต์ตัวเชื่อมโยงที่ถูกใช้โดย
ลิงเกอร์ ถ้าตัวเลือก จำนวน อาร์กิวเมนต์ > 1 สถานะสัญลักษณ์ปลั๊กอินจะเป็น
แสดง

--version-script=version-scriptfile
ระบุชื่อของสคริปต์เวอร์ชันไปยังตัวเชื่อมโยง โดยทั่วไปจะใช้เมื่อ
การสร้างไลบรารีที่ใช้ร่วมกันเพื่อระบุข้อมูลเพิ่มเติมเกี่ยวกับเวอร์ชัน
ลำดับชั้นสำหรับการสร้างห้องสมุด ตัวเลือกนี้รองรับอย่างสมบูรณ์ในELF .เท่านั้น
แพลตฟอร์มที่รองรับไลบรารีที่ใช้ร่วมกัน ดู VERSION. ได้รับการสนับสนุนบางส่วนใน
แพลตฟอร์ม PE ซึ่งใช้สคริปต์เวอร์ชันเพื่อกรองการมองเห็นสัญลักษณ์ในการส่งออกอัตโนมัติ
โหมด: สัญลักษณ์ใด ๆ ที่ทำเครื่องหมาย ในประเทศ ในสคริปต์เวอร์ชันจะไม่ถูกส่งออก

--เตือน-ทั่วไป
เตือนเมื่อสัญลักษณ์ทั่วไปรวมกับสัญลักษณ์ทั่วไปอื่นหรือสัญลักษณ์
คำนิยาม. ตัวเชื่อมโยง Unix อนุญาตให้มีการปฏิบัติที่ค่อนข้างเลอะเทอะ แต่ตัวเชื่อมโยงในบางส่วน
ระบบปฏิบัติการอื่นไม่ได้ ตัวเลือกนี้ช่วยให้คุณค้นหาปัญหาที่อาจเกิดขึ้นได้
จากการรวมสัญลักษณ์สากล น่าเสียดายที่ไลบรารี C บางตัวใช้วิธีนี้ ดังนั้น
คุณอาจได้รับคำเตือนเกี่ยวกับสัญลักษณ์ในไลบรารีและในโปรแกรมของคุณ

สัญลักษณ์สากลมีสามประเภท ดังตัวอย่าง C:

int i = 1;
คำจำกัดความซึ่งอยู่ในส่วนข้อมูลที่เริ่มต้นของไฟล์เอาต์พุต

extern int i;
การอ้างอิงที่ไม่ได้กำหนดซึ่งไม่ได้จัดสรรพื้นที่ จะต้องมีอย่างใดอย่างหนึ่ง
คำจำกัดความหรือสัญลักษณ์ทั่วไปสำหรับตัวแปรที่ใดที่หนึ่ง

int i;
สัญลักษณ์ทั่วไป หากมีเพียงหนึ่ง (หรือมากกว่า) สัญลักษณ์ทั่วไปสำหรับตัวแปร
มันไปในพื้นที่ข้อมูลที่ยังไม่ได้กำหนดค่าเริ่มต้นของไฟล์ที่ส่งออก ตัวเชื่อมโยงผสาน
สัญลักษณ์ทั่วไปหลายตัวสำหรับตัวแปรเดียวกันเป็นสัญลักษณ์เดียว ถ้าใช่
ขนาดต่างๆ จะเลือกขนาดที่ใหญ่ที่สุด ตัวเชื่อมโยงเปลี่ยนเป็นสัญลักษณ์ทั่วไป
เป็นการประกาศหากมีคำจำกัดความของตัวแปรเดียวกัน

พื้นที่ปลูก --เตือน-ทั่วไป ตัวเลือกสามารถสร้างคำเตือนได้ห้าประเภท คำเตือนแต่ละครั้งประกอบด้วย
คู่ของบรรทัด: อันแรกอธิบายสัญลักษณ์ที่เพิ่งพบ และที่สอง
อธิบายสัญลักษณ์ก่อนหน้าที่พบด้วยชื่อเดียวกัน หนึ่งหรือทั้งสองอย่าง
สัญลักษณ์จะเป็นสัญลักษณ์ทั่วไป

1. เปลี่ยนสัญลักษณ์ทั่วไปให้เป็นข้อมูลอ้างอิง เพราะมีคำจำกัดความอยู่แล้ว
สำหรับสัญลักษณ์

( ): คำเตือน: สามัญของ ` '
ถูกแทนที่ด้วยคำนิยาม
( ): คำเตือน: กำหนดไว้ที่นี่

2. เปลี่ยนสัญลักษณ์ทั่วไปเป็นข้อมูลอ้างอิงเพราะคำนิยามในภายหลังสำหรับ
พบสัญลักษณ์ ก็เหมือนกับกรณีที่แล้ว เว้นแต่ว่า
พบสัญลักษณ์ในลำดับที่ต่างกัน

( ): คำเตือน: คำจำกัดความของ ` '
เอาชนะสามัญ
( ): คำเตือน: สามัญอยู่ที่นี่

3. การรวมสัญลักษณ์ทั่วไปเข้ากับสัญลักษณ์ทั่วไปขนาดเดียวกันก่อนหน้า

( ): คำเตือน: หลายรายการร่วมกัน
ของ ` '
( ): คำเตือน: สามัญก่อนหน้าอยู่ที่นี่

4. การรวมสัญลักษณ์ทั่วไปเข้ากับสัญลักษณ์ทั่วไปที่ใหญ่กว่าก่อนหน้า

( ): คำเตือน: สามัญของ ` '
แทนที่ด้วยสามัญที่ใหญ่กว่า
( ): คำเตือน: ทั่วไปที่ใหญ่กว่าอยู่ที่นี่

5. การรวมสัญลักษณ์ทั่วไปเข้ากับสัญลักษณ์ทั่วไปที่เล็กกว่าก่อนหน้า นี่ก็เหมือนกัน
ดังเช่นกรณีก่อน เว้นแต่จะพบสัญลักษณ์ต่างกัน
สั่ง

( ): คำเตือน: สามัญของ ` '
เอาชนะสามัญที่เล็กกว่า
( ): คำเตือน: คอมมอนล์ที่เล็กกว่าอยู่ที่นี่

--เตือน-ตัวสร้าง
เตือนหากมีการใช้ตัวสร้างทั่วโลก สิ่งนี้มีประโยชน์สำหรับไฟล์อ็อบเจ็กต์บางไฟล์เท่านั้น
รูปแบบ สำหรับรูปแบบเช่น COFF หรือ ELF ตัวเชื่อมโยงไม่สามารถตรวจพบการใช้ global
ตัวสร้าง

--warn-หลาย-gp
เตือนหากต้องการค่าตัวชี้ส่วนกลางหลายค่าในไฟล์ที่ส่งออก นี้เท่านั้น
มีความหมายสำหรับโปรเซสเซอร์บางตัว เช่น Alpha โดยเฉพาะโปรเซสเซอร์บางตัว
ใส่ค่าคงที่ที่มีค่ามากไว้ในส่วนพิเศษ ทะเบียนพิเศษ (global
ตัวชี้) ชี้ไปที่ตรงกลางของส่วนนี้เพื่อให้สามารถโหลดค่าคงที่ได้
อย่างมีประสิทธิภาพผ่านโหมดการกำหนดที่อยู่สัมพัทธ์ของการลงทะเบียนฐาน ตั้งแต่การชดเชยในฐาน-
โหมดรีจิสเตอร์สัมพันธ์นั้นคงที่และค่อนข้างเล็ก (เช่น 16 บิต) ซึ่งจะจำกัด
ขนาดสูงสุดของพูลคงที่ ดังนั้น ในโปรแกรมขนาดใหญ่ มักจะจำเป็นต้อง
ใช้ค่าตัวชี้ทั่วโลกหลายค่าเพื่อให้สามารถระบุได้ทั้งหมด
ค่าคงที่ ตัวเลือกนี้ทำให้เกิดคำเตือนทุกครั้งที่เกิดกรณีนี้ขึ้น

--เตือน-ครั้งเดียว
เตือนเพียงครั้งเดียวสำหรับแต่ละสัญลักษณ์ที่ไม่ได้กำหนด มากกว่าหนึ่งครั้งต่อโมดูลที่อ้างถึง
มัน

--warn-section-align
เตือนหากที่อยู่ของส่วนผลลัพธ์มีการเปลี่ยนแปลงเนื่องจากการจัดตำแหน่ง โดยทั่วไป,
การจัดตำแหน่งจะถูกกำหนดโดยส่วนป้อนข้อมูล ที่อยู่จะเปลี่ยนก็ต่อเมื่อ
ไม่ได้ระบุไว้อย่างชัดเจน; นั่นคือถ้าคำสั่ง "SECTIONS" ไม่ได้ระบุ start
ที่อยู่สำหรับส่วน

--warn-shared-textrel
เตือนหากตัวเชื่อมโยงเพิ่ม DT_TEXTREL ให้กับวัตถุที่ใช้ร่วมกัน

--warn-ทางเลือก-em
เตือนหากวัตถุมีรหัสเครื่องอื่นของ ELF

--warn-unresolved-สัญลักษณ์
หากตัวเชื่อมโยงกำลังจะรายงานสัญลักษณ์ที่ยังไม่ได้แก้ไข (ดูตัวเลือก
--unresolved-สัญลักษณ์) โดยปกติจะสร้างข้อผิดพลาด ตัวเลือกนี้ทำให้มัน
สร้างคำเตือนแทน

--error-unresolved-สัญลักษณ์
สิ่งนี้จะกู้คืนพฤติกรรมเริ่มต้นของตัวเชื่อมโยงในการสร้างข้อผิดพลาดเมื่อมีการรายงาน
สัญลักษณ์ที่ไม่ได้รับการแก้ไข

--ทั้งคลัง
สำหรับแต่ละไฟล์เก็บถาวรที่กล่าวถึงในบรรทัดคำสั่งหลัง the --ทั้งคลัง ตัวเลือก
รวมไฟล์อ็อบเจ็กต์ทุกไฟล์ในไฟล์เก็บถาวรในลิงก์ แทนที่จะค้นหาไฟล์
ไฟล์เก็บถาวรสำหรับไฟล์อ็อบเจ็กต์ที่จำเป็น ปกติจะใช้เปิดไฟล์เก็บถาวร
ลงในไลบรารีที่ใช้ร่วมกัน บังคับให้ทุกอ็อบเจ็กต์ถูกรวมในการแชร์ผลลัพธ์
ห้องสมุด. ตัวเลือกนี้อาจใช้มากกว่าหนึ่งครั้ง

หมายเหตุสองข้อเมื่อใช้ตัวเลือกนี้จาก gcc: อันดับแรก gcc ไม่ทราบเกี่ยวกับตัวเลือกนี้
เลยต้องใช้ -Wl,-ทั้งคลัง. ประการที่สอง อย่าลืมใช้
-Wl,-ไม่มีที่เก็บถาวร หลังรายการที่เก็บถาวรของคุณ เพราะ gcc จะเพิ่มรายการของตัวเอง
ของไฟล์เก็บถาวรในลิงก์ของคุณและคุณอาจไม่ต้องการให้แฟล็กนี้มีผลกับสิ่งเหล่านั้นเช่นกัน

--wrap=เครื่องหมาย
ใช้ฟังก์ชัน wrapper สำหรับ เครื่องหมาย. การอ้างอิงใด ๆ ที่ไม่ได้กำหนดถึง เครื่องหมาย จะได้รับการแก้ไข
ถึง "__wrap_เครื่องหมาย". การอ้างอิงใด ๆ ที่ไม่ได้กำหนดให้กับ "__real_เครื่องหมาย" จะได้รับการแก้ไขให้
เครื่องหมาย.

สามารถใช้เพื่อจัดเตรียม wrapper สำหรับฟังก์ชันระบบ ฟังก์ชั่นเครื่องห่อ
ควรเรียกว่า "__wrap_เครื่องหมาย". ถ้าต้องการเรียกใช้ฟังก์ชันระบบก็ควร
โทร "__real_เครื่องหมาย".

นี่คือตัวอย่างเล็กน้อย:

เป็นโมฆะ *
__wrap_malloc (size_t c)
{
printf ("malloc เรียกด้วย %zu\n", c);
ส่งคืน __real_malloc (c);
}

หากคุณเชื่อมโยงรหัสอื่นกับไฟล์นี้โดยใช้ --ห่อ mallocจากนั้นเรียก "malloc" ทั้งหมด
จะเรียกใช้ฟังก์ชัน "__wrap_malloc" แทน การเรียก "__real_malloc" ใน
"__wrap_malloc" จะเรียกฟังก์ชัน "malloc" ที่แท้จริง

คุณอาจต้องการให้ฟังก์ชัน "__real_malloc" เช่นกัน เพื่อให้ลิงก์โดยไม่มี
--ห่อ ตัวเลือกจะประสบความสำเร็จ ถ้าทำอย่างนี้ก็ไม่ควรใส่คำจำกัดความของ
"__real_malloc" ในไฟล์เดียวกับ "__wrap_malloc"; ถ้าคุณทำ แอสเซมเบลอร์อาจ
แก้ไขการโทรก่อนที่ลิงเกอร์จะมีโอกาสห่อเป็น "malloc"

--eh-frame-hdr
คำขอสร้างส่วน ".eh_frame_hdr" และส่วนหัวของเซ็กเมนต์ ELF "PT_GNU_EH_FRAME"

--no-ld-generated-unwind-info
ขอสร้าง ".eh_frame" ข้อมูลคลี่คลายสำหรับส่วนโค้ดที่สร้างตัวเชื่อมโยงเช่น
ป.ล. ตัวเลือกนี้จะเปิดใช้งานตามค่าเริ่มต้น หากตัวเชื่อมโยงสร้างข้อมูลการคลายตัวได้รับการสนับสนุน

--enable-new-dtags
--disable-new-dtags
ตัวเชื่อมโยงนี้สามารถสร้างแท็กไดนามิกใหม่ใน ELF แต่ระบบ ELF ที่เก่ากว่าอาจไม่ใช่
เข้าใจพวกเขา หากคุณระบุ --enable-new-dtagsแท็กไดนามิกใหม่จะเป็น
สร้างตามความจำเป็นและแท็กไดนามิกที่เก่ากว่าจะถูกละเว้น หากคุณระบุ
--disable-new-dtagsจะไม่มีการสร้างแท็กไดนามิกใหม่ โดยค่าเริ่มต้น ไดนามิก . ใหม่
ไม่ได้สร้างแท็ก โปรดทราบว่าตัวเลือกเหล่านั้นมีให้สำหรับระบบ ELF เท่านั้น

--hash-size=จำนวน
กำหนดขนาดเริ่มต้นของตารางแฮชของลิงเกอร์เป็นจำนวนเฉพาะใกล้กับ จำนวน.
การเพิ่มค่านี้สามารถลดระยะเวลาที่ตัวเชื่อมโยงดำเนินการ
งานโดยเพิ่มความต้องการหน่วยความจำของลิงเกอร์ ในทำนองเดียวกัน
การลดค่านี้สามารถลดความต้องการหน่วยความจำด้วยความเร็ว

--hash-style=สไตล์
กำหนดประเภทของตารางแฮชของลิงเกอร์ สไตล์ สามารถเป็น "sysv" สำหรับ ELF . แบบคลาสสิกได้
ส่วน ".hash", "gnu" สำหรับรูปแบบใหม่ของ GNU ส่วน ".gnu.hash" หรือ "ทั้งคู่" สำหรับทั้ง
ตารางแฮช ".hash" แบบคลาสสิกของ ELF และตารางแฮช GNU ".gnu.hash" สไตล์ใหม่ ค่าเริ่มต้นคือ "sysv"

--compress-debug-sections=none
--compress-debug-sections=zlib
--compress-debug-sections=zlib-gnu
--compress-debug-sections=zlib-gabi
บนแพลตฟอร์ม ELF ตัวเลือกเหล่านี้จะควบคุมวิธีบีบอัดส่วนดีบัก DWARF โดยใช้
ซบ. --compress-debug-sections=none ไม่บีบอัดส่วนการดีบัก DWARF
--compress-debug-sections=zlib-gnu บีบอัดส่วนการดีบัก DWARF และเปลี่ยนชื่อ debug
ชื่อส่วนที่ขึ้นต้นด้วย .zdebug แทน .debug. --compress-debug-sections=zlib
และ --compress-debug-sections=zlib-gabi บีบอัดส่วนการดีบัก DWARF ด้วย
SHF_COMPRESSED จาก ELF ABI พฤติกรรมเริ่มต้นแตกต่างกันไปขึ้นอยู่กับ
เป้าหมายที่เกี่ยวข้องและตัวเลือกการกำหนดค่าที่ใช้ในการสร้าง toolchain ค่าเริ่มต้น
สามารถกำหนดได้โดยการตรวจสอบผลลัพธ์จากตัวเชื่อมโยง --ช่วยด้วย ตัวเลือก

--reduce-หน่วยความจำ-ค่าใช้จ่าย
ตัวเลือกนี้ช่วยลดความต้องการหน่วยความจำที่รันไทม์ ld โดยเสียค่าใช้จ่ายในการลิงก์
ความเร็ว. สิ่งนี้ถูกนำมาใช้เพื่อเลือกอัลกอริธึม O(n^2) เก่าสำหรับไฟล์แผนที่ลิงค์
การสร้างแทนที่จะเป็นอัลกอริธึม O(n) ใหม่ซึ่งใช้หน่วยความจำเพิ่มขึ้นประมาณ 40% สำหรับ
การจัดเก็บสัญลักษณ์

เอฟเฟกต์อื่นของสวิตช์คือการตั้งค่าขนาดตารางแฮชเริ่มต้นเป็น 1021 ซึ่ง
ช่วยประหยัดหน่วยความจำอีกครั้งด้วยค่าใช้จ่ายในการขยายเวลาทำงานของตัวเชื่อมโยง นี่ยังไม่เสร็จ
แต่ถ้า --แฮช-ขนาด สวิตช์ถูกใช้แล้ว

พื้นที่ปลูก --reduce-หน่วยความจำ-ค่าใช้จ่าย อาจใช้สวิตช์เพื่อเปิดใช้งานการแลกเปลี่ยนอื่นๆ ใน
ตัวเชื่อมโยงเวอร์ชันในอนาคต

--build-id
--build-id=สไตล์
ขอให้สร้างส่วนบันทึก ".note.gnu.build-id" ELF หรือ ".buildid" COFF
ส่วน. เนื้อหาของบันทึกย่อเป็นบิตที่ไม่ซ้ำกันซึ่งระบุไฟล์ที่เชื่อมโยงนี้
สไตล์ สามารถเป็น "uuid" เพื่อใช้สุ่ม 128 บิต "sha1" เพื่อใช้แฮช SHA160 1 บิตบน
ส่วนที่เป็นบรรทัดฐานของเนื้อหาเอาต์พุต "md5" เพื่อใช้แฮช MD128 5 บิตบน
ส่วนที่เป็นบรรทัดฐานของเนื้อหาเอาต์พุตหรือ "0xสตริง" เพื่อใช้สตริงบิตที่เลือก
ระบุเป็นเลขฐานสิบหก ("-" และ ":" อักขระระหว่าง
คู่หลักจะถูกละเว้น) ถ้า สไตล์ ละไว้ ใช้ "sha1"

สไตล์ "md5" และ "sha1" สร้างตัวระบุที่เหมือนกันเสมอใน
ไฟล์เอาต์พุตที่เหมือนกัน แต่จะไม่ซ้ำใครในไฟล์เอาต์พุตที่ไม่ซ้ำกันทั้งหมด มันคือ
ไม่ได้มีวัตถุประสงค์เพื่อเปรียบเทียบเป็นเช็คซัมสำหรับเนื้อหาของไฟล์ ไฟล์ที่เชื่อมโยงอาจ
ถูกเปลี่ยนในภายหลังโดยเครื่องมืออื่น ๆ แต่สตริงบิตการสร้าง ID ระบุต้นฉบับ
ไฟล์ที่เชื่อมโยงจะไม่เปลี่ยนแปลง

ผ่าน "ไม่มี" สำหรับ สไตล์ ปิดใช้งานการตั้งค่าจากตัวเลือก "--build-id" ใด ๆ ก่อนหน้านี้ใน
บรรทัดคำสั่ง

ตัวเชื่อมโยง i386 PE รองรับ -shared ตัวเลือกซึ่งทำให้ผลลัพธ์เป็น
ไลบรารีที่เชื่อมโยงแบบไดนามิก (DLL) แทนการเรียกทำงานปกติ คุณควรตั้งชื่อ
เอาต์พุต "*.dll" เมื่อคุณใช้ตัวเลือกนี้ นอกจากนี้ลิงเกอร์ยังสนับสนุน .อย่างเต็มที่
ไฟล์มาตรฐาน "*.def" ซึ่งอาจระบุไว้ในบรรทัดคำสั่งของลิงเกอร์เหมือนอ็อบเจกต์
ไฟล์ (อันที่จริง มันควรจะนำหน้าไฟล์เก็บถาวรที่ส่งออกสัญลักษณ์เพื่อให้แน่ใจว่าได้รับ
เชื่อมโยงเหมือนกับไฟล์อ็อบเจ็กต์ปกติ)

นอกเหนือจากตัวเลือกทั่วไปสำหรับเป้าหมายทั้งหมด ตัวเชื่อมโยง i386 PE ยังรองรับเพิ่มเติม
ตัวเลือกบรรทัดคำสั่งเฉพาะสำหรับเป้าหมาย i386 PE ตัวเลือกที่ใช้ค่า
อาจแยกจากค่าของพวกเขาด้วยการเว้นวรรคหรือเครื่องหมายเท่ากับ

--add-stdcall-นามแฝง
หากได้รับ สัญลักษณ์ที่มีส่วนต่อท้าย stdcall (@nn) จะถูกส่งออกตามที่เป็นอยู่และด้วย
คำต่อท้ายถูกปล้น [ตัวเลือกนี้เฉพาะสำหรับพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--base-file ไฟล์
ใช้ ไฟล์ เป็นชื่อของไฟล์ที่จะบันทึกที่อยู่ฐานของ .ทั้งหมด
การย้ายที่ตั้งที่จำเป็นสำหรับการสร้าง DLL ด้วย dlltool. [นี่คือ i386 PE เฉพาะ
ตัวเลือก]

--dll
สร้าง DLL แทนการเรียกทำงานปกติ คุณสามารถใช้ -shared หรือระบุ a
"LIBRARY" ในไฟล์ ".def" ที่กำหนด [ตัวเลือกนี้เฉพาะสำหรับ i386 PE ที่เป็นเป้าหมาย
พอร์ตของตัวเชื่อมโยง]

--enable-long-section-names
--disable-long-section-names
ตัวแปร PE ของรูปแบบอ็อบเจ็กต์ COFF เพิ่มส่วนขยายที่อนุญาตให้ใช้
ชื่อส่วนยาวเกินแปดอักขระ ขีดจำกัดปกติสำหรับ COFF โดยค่าเริ่มต้น,
ชื่อเหล่านี้ได้รับอนุญาตในไฟล์อ็อบเจ็กต์เท่านั้น เนื่องจากอิมเมจสั่งการที่เชื่อมโยงอย่างสมบูรณ์ไม่
ดำเนินการตารางสตริง COFF ที่จำเป็นเพื่อรองรับชื่อที่ยาวขึ้น ในฐานะส่วนขยาย GNU
เป็นไปได้ที่จะอนุญาตให้ใช้ในอิมเมจสั่งการได้เช่นกัน หรือเพื่อ (อาจเป็น
ไม่มีจุดหมาย!) ไม่อนุญาตในไฟล์วัตถุโดยใช้สองตัวเลือกนี้ ปฏิบัติการได้
รูปภาพที่สร้างด้วยชื่อส่วนยาวเหล่านี้ไม่ได้มาตรฐานเล็กน้อย โดยถือเป็น
พวกเขาทำตารางสตริงและอาจสร้างเอาต์พุตที่สับสนเมื่อตรวจสอบด้วย non-GNU
เครื่องมือ PE-aware เช่น โปรแกรมดูไฟล์และดัมพ์ อย่างไรก็ตาม GDB อาศัยการใช้
ชื่อส่วนยาวของ PE เพื่อค้นหาส่วนข้อมูลการดีบัก Dwarf-2 ในไฟล์ปฏิบัติการ
อิมเมจ ณ รันไทม์ และหากไม่ได้ระบุตัวเลือกใดไว้บนบรรทัดคำสั่ง ld จะ
เปิดใช้งานชื่อส่วนแบบยาว แทนที่ค่าเริ่มต้นและพฤติกรรมที่ถูกต้องทางเทคนิค
เมื่อพบว่ามีข้อมูลการดีบักในขณะที่เชื่อมโยงอิมเมจที่ปฏิบัติการได้และ
ไม่ลอกสัญลักษณ์ [ตัวเลือกนี้ใช้ได้กับพอร์ตเป้าหมาย PE ทั้งหมดของตัวเชื่อมโยง]

--enable-stdcall-fixup
--disable-stdcall-fixup
หากลิงก์พบสัญลักษณ์ที่ไม่สามารถแก้ไขได้ จะพยายามทำ "fuzzy ."
การเชื่อมโยง" โดยมองหาสัญลักษณ์อื่นที่กำหนดไว้ซึ่งแตกต่างเฉพาะในรูปแบบของ
ชื่อสัญลักษณ์ (cdecl vs stdcall) และจะแก้ไขสัญลักษณ์นั้นโดยเชื่อมโยงไปยังการจับคู่
ตัวอย่างเช่น สัญลักษณ์ที่ไม่ได้กำหนด "_foo" อาจเชื่อมโยงกับฟังก์ชัน "_foo@12" หรือ
สัญลักษณ์ที่ไม่ได้กำหนด "_bar@16" อาจเชื่อมโยงกับฟังก์ชัน "_bar" เมื่อ
linker ทำสิ่งนี้ มันพิมพ์คำเตือน เนื่องจากปกติมันควรจะเชื่อมโยงไม่สำเร็จ
แต่บางครั้งนำเข้าไลบรารีที่สร้างจาก dll ของบริษัทอื่นอาจต้องการคุณลักษณะนี้
ที่จะใช้งานได้ หากคุณระบุ --enable-stdcall-fixup, คุณสมบัตินี้เปิดใช้งานอย่างสมบูรณ์
และไม่พิมพ์คำเตือน หากคุณระบุ --disable-stdcall-fixup, คุณลักษณะนี้คือ
ปิดการใช้งานและความไม่ตรงกันดังกล่าวถือเป็นข้อผิดพลาด [ตัวเลือกนี้เฉพาะสำหรับ
พอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--ชั้นนำ-ขีดเส้นใต้
--ไม่มีผู้นำ-ขีดเส้นใต้
สำหรับเป้าหมายส่วนใหญ่คำนำหน้าสัญลักษณ์เริ่มต้นคือขีดล่างและถูกกำหนดไว้ใน targetของเป้าหมาย
คำอธิบาย. ด้วยตัวเลือกนี้ คุณสามารถปิด/เปิดใช้งานขีดล่างเริ่มต้นได้
สัญลักษณ์-คำนำหน้า

--export-all-สัญลักษณ์
หากกำหนดไว้ สัญลักษณ์ส่วนกลางทั้งหมดในวัตถุที่ใช้สร้าง DLL จะถูกส่งออกโดย
ไฟล์ DLL โปรดทราบว่านี่เป็นค่าเริ่มต้นหากไม่มีการส่งออกใด ๆ
สัญลักษณ์ เมื่อสัญลักษณ์ส่งออกอย่างชัดเจนผ่านไฟล์ DEF หรือส่งออกโดยปริยาย
ผ่านแอตทริบิวต์ของฟังก์ชัน ค่าเริ่มต้นคือไม่ส่งออกอย่างอื่นเว้นแต่ตัวเลือกนี้
จะได้รับ โปรดทราบว่าสัญลักษณ์ "DllMain@12", "DllEntryPoint@0",
"DllMainCRTStartup@12" และ "impure_ptr" จะไม่ถูกส่งออกโดยอัตโนมัติ อีกด้วย,
สัญลักษณ์ที่นำเข้าจาก DLL อื่น ๆ จะไม่ถูกส่งออกซ้ำ และสัญลักษณ์จะไม่ระบุ
เลย์เอาต์ภายในของ DLL เช่นที่ขึ้นต้นด้วย "_head_" หรือลงท้ายด้วย
"_ฉันชื่อ". นอกจากนี้ ไม่มีสัญลักษณ์จาก "libgcc", "libstd++", "libmingw32" หรือ
"crtX.o" จะถูกส่งออก สัญลักษณ์ที่มีชื่อขึ้นต้นด้วย "__rtti_" หรือ "__builtin_"
จะไม่ถูกส่งออกเพื่อช่วยในการ C ++ DLL ในที่สุดก็มีรายการมากมายของ
สัญลักษณ์ 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" และ "environ" [ตัวเลือกนี้เฉพาะสำหรับ i386 PE ที่เป็นเป้าหมาย
พอร์ตของตัวเชื่อมโยง]

--exclude-สัญลักษณ์ เครื่องหมาย,เครื่องหมาย...
ระบุรายการสัญลักษณ์ที่ไม่ควรส่งออกโดยอัตโนมัติ สัญลักษณ์
ชื่อสามารถคั่นด้วยเครื่องหมายจุลภาคหรือทวิภาค [ตัวเลือกนี้เฉพาะสำหรับ i386 PE
พอร์ตเป้าหมายของตัวเชื่อมโยง]

--exclude-all-สัญลักษณ์
ระบุว่าไม่ควรส่งออกสัญลักษณ์ใดโดยอัตโนมัติ [ตัวเลือกนี้เฉพาะสำหรับ
พอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--การจัดตำแหน่งไฟล์
ระบุการจัดตำแหน่งไฟล์ ส่วนต่างๆ ในไฟล์จะเริ่มต้นที่ file offsets . เสมอ
ซึ่งเป็นผลคูณของจำนวนนี้ ค่าเริ่มต้นนี้เป็น 512 [ตัวเลือกนี้เฉพาะ
ไปยังพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--กอง สำรอง
--กอง สำรอง,ผูกมัด
ระบุจำนวนไบต์ของหน่วยความจำที่จะสำรอง (และเลือกที่จะคอมมิต) เพื่อใช้เป็น
ฮีปสำหรับโปรแกรมนี้ ค่าเริ่มต้นคือ 1MB สงวนไว้ 4K คอมมิต [ตัวเลือกนี้คือ
เฉพาะสำหรับพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--image-base ความคุ้มค่า
ใช้ ความคุ้มค่า เป็นที่อยู่พื้นฐานของโปรแกรมหรือ dll ของคุณ นี่คือหน่วยความจำที่ต่ำที่สุด
ตำแหน่งที่จะใช้เมื่อโหลดโปรแกรมหรือ dll ของคุณ เพื่อลดความจำเป็นในการ
ย้ายและปรับปรุงประสิทธิภาพของ dll ของคุณ โดยแต่ละรายการควรมีที่อยู่ฐานที่ไม่ซ้ำกัน
และไม่ทับซ้อน dll อื่น ๆ ค่าดีฟอลต์คือ 0x400000 สำหรับไฟล์เรียกทำงาน และ
0x10000000 สำหรับ dll [ตัวเลือกนี้เฉพาะสำหรับพอร์ตเป้าหมาย i386 PE ของ
ลิงเกอร์]

--kill-at
หากได้รับ stdcall จะต่อท้าย (@nn) จะถูกถอดออกจากสัญลักษณ์ก่อนเป็น
ส่งออก [ตัวเลือกนี้เฉพาะสำหรับพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--ขนาดใหญ่-ที่อยู่-ตระหนัก
หากได้รับ บิตที่เหมาะสมในฟิลด์ "ลักษณะ" ของส่วนหัว COFF จะถูกตั้งค่า
เพื่อระบุว่าไฟล์สั่งการนี้รองรับที่อยู่เสมือนที่มากกว่า 2 กิกะไบต์
ควรใช้ร่วมกับ /3GB หรือ /USERVA=ความคุ้มค่า เมกะไบต์สลับเป็น
ส่วน "[ระบบปฏิบัติการ]" ของ BOOT.INI มิฉะนั้นบิตนี้จะไม่มีผล
[ตัวเลือกนี้เฉพาะสำหรับพอร์ตเป้าหมาย PE ของตัวเชื่อมโยง]

--disable-ขนาดใหญ่-ที่อยู่-aware
เปลี่ยนเอฟเฟกต์ของตัวก่อนหน้า --ขนาดใหญ่-ที่อยู่-ตระหนัก ตัวเลือก. สิ่งนี้มีประโยชน์หาก
--ขนาดใหญ่-ที่อยู่-ตระหนัก ถูกกำหนดโดยไดรเวอร์คอมไพเลอร์เสมอ (เช่น Cygwin gcc) และ
executable ไม่สนับสนุนที่อยู่เสมือนที่มากกว่า 2 กิกะไบต์ [ตัวเลือกนี้
เฉพาะกับพอร์ตเป้าหมาย PE ของตัวเชื่อมโยง]

--major-image-version ความคุ้มค่า
ตั้งค่าหมายเลขหลักของ "เวอร์ชันอิมเมจ" ค่าเริ่มต้นคือ 1 [ตัวเลือกนี้คือ
เฉพาะสำหรับพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--major-os-เวอร์ชัน ความคุ้มค่า
ตั้งค่าหมายเลขหลักของ "เวอร์ชันระบบปฏิบัติการ" ค่าเริ่มต้นเป็น 4 [ตัวเลือกนี้มีความเฉพาะเจาะจง
ไปยังพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--major-subsystem-version ความคุ้มค่า
ตั้งค่าหมายเลขหลักของ "เวอร์ชันระบบย่อย" ค่าเริ่มต้นเป็น 4 [ตัวเลือกนี้คือ
เฉพาะสำหรับพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--minor-image-version ความคุ้มค่า
ตั้งค่าหมายเลขรองของ "เวอร์ชันรูปภาพ" ค่าเริ่มต้นเป็น 0 [ตัวเลือกนี้คือ
เฉพาะสำหรับพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--minor-os-เวอร์ชัน ความคุ้มค่า
ตั้งค่าหมายเลขรองของ "เวอร์ชันระบบปฏิบัติการ" ค่าเริ่มต้นเป็น 0 [ตัวเลือกนี้มีความเฉพาะเจาะจง
ไปยังพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--minor-subsystem-รุ่น ความคุ้มค่า
ตั้งค่าหมายเลขรองของ "เวอร์ชันระบบย่อย" ค่าเริ่มต้นเป็น 0 [ตัวเลือกนี้คือ
เฉพาะสำหรับพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--output-def ไฟล์
ตัวเชื่อมโยงจะสร้างไฟล์ ไฟล์ ซึ่งจะมีไฟล์ DEF ที่สอดคล้องกับ
DLL ที่ตัวเชื่อมโยงกำลังสร้าง ไฟล์ DEF นี้ (ซึ่งควรเรียกว่า "*.def") อาจ
ใช้เพื่อสร้างไลบรารีนำเข้าด้วย "dlltool" หรืออาจใช้เป็นข้อมูลอ้างอิงถึง
สัญลักษณ์ที่ส่งออกโดยอัตโนมัติหรือโดยปริยาย [ตัวเลือกนี้เฉพาะสำหรับ i386 PE
พอร์ตเป้าหมายของตัวเชื่อมโยง]

--out-implib ไฟล์
ตัวเชื่อมโยงจะสร้างไฟล์ ไฟล์ ซึ่งจะมีการนำเข้า lib ที่สอดคล้องกับ
DLL ที่ตัวเชื่อมโยงกำลังสร้าง lib การนำเข้านี้ (ซึ่งควรเรียกว่า "*.dll.a" หรือ
"*.a" อาจใช้เพื่อเชื่อมโยงไคลเอ็นต์กับ DLL ที่สร้างขึ้น พฤติกรรมนี้ทำให้
เป็นไปได้ที่จะข้ามขั้นตอนการสร้างไลบรารีนำเข้า "dlltool" แยกต่างหาก [ตัวเลือกนี้คือ
เฉพาะสำหรับพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--enable-auto-image-base
--enable-auto-image-base=ความคุ้มค่า
เลือกฐานรูปภาพสำหรับ DLL โดยอัตโนมัติ โดยอาจเริ่มต้นด้วย base ความคุ้มค่า,
เว้นแต่จะมีการระบุไว้โดยใช้อาร์กิวเมนต์ "--image-base" โดยใช้แฮชที่สร้างขึ้น
จากชื่อ dll เพื่อสร้างฐานภาพที่ไม่ซ้ำกันสำหรับแต่ละ DLL การชนกันในหน่วยความจำและ
การย้ายที่ตั้งซึ่งอาจทำให้การทำงานของโปรแกรมล่าช้าจะหลีกเลี่ยง [ตัวเลือกนี้เฉพาะ
ไปยังพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--disable-auto-image-base
อย่าสร้างฐานภาพที่ไม่ซ้ำกันโดยอัตโนมัติ หากไม่มีการระบุผู้ใช้
image base ("--image-base") จากนั้นใช้ค่าเริ่มต้นของแพลตฟอร์ม [ตัวเลือกนี้เฉพาะ
ไปยังพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--dll-ค้นหาคำนำหน้า เชือก
เมื่อเชื่อมโยงแบบไดนามิกกับ dll โดยไม่มีไลบรารีนำเข้า ให้ค้นหา
" .dll" แทนที่จะเป็น "lib .dll". ลักษณะการทำงานนี้ช่วยให้
แยกแยะได้ง่ายระหว่าง DLLs ที่สร้างขึ้นสำหรับ "แพลตฟอร์มย่อย" ต่างๆ: เนทีฟ, cygwin,
uwin, pw เป็นต้น ตัวอย่างเช่น cygwin DLL มักใช้ "--dll-search-prefix=cyg"
[ตัวเลือกนี้เฉพาะสำหรับพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--เปิดใช้งาน-นำเข้าอัตโนมัติ
ทำการเชื่อมโยงที่ซับซ้อนของ "_symbol" กับ "__imp__symbol" สำหรับการนำเข้า DATA จาก DLL
และสร้างสัญลักษณ์ thunking ที่จำเป็นเมื่อสร้างไลบรารีนำเข้าด้วย
การส่งออกข้อมูลเหล่านั้น หมายเหตุ: การใช้ส่วนขยาย 'นำเข้าอัตโนมัติ' จะทำให้ข้อความ
ส่วนของไฟล์รูปภาพที่จะเขียนได้ สิ่งนี้ไม่สอดคล้องกับ PE-COFF
ข้อกำหนดรูปแบบที่เผยแพร่โดย Microsoft

หมายเหตุ - การใช้ส่วนขยาย 'นำเข้าอัตโนมัติ' จะทำให้ข้อมูลเป็นแบบอ่านอย่างเดียวซึ่งจะ
โดยปกติจะถูกวางไว้ในส่วน .rdata ที่จะวางลงใน .data ส่วน
แทนที่. นี้เพื่อแก้ไขปัญหากับ const ที่อธิบายไว้
นี่: http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html

การใช้ 'นำเข้าอัตโนมัติ' โดยทั่วไปจะ 'ใช้ได้' - แต่บางครั้งคุณอาจเห็นสิ่งนี้
ข้อความ:

"ตัวแปร ' ' ไม่สามารถนำเข้าอัตโนมัติได้ โปรดอ่านเอกสารประกอบสำหรับ ld's
"--เปิดใช้งาน-นำเข้าอัตโนมัติ" สำหรับรายละเอียด

ข้อความนี้เกิดขึ้นเมื่อนิพจน์บางส่วน (ย่อย) เข้าถึงที่อยู่ที่ได้รับจาก
ผลรวมของค่าคงที่สองค่า (ตารางนำเข้า Win32 อนุญาตเพียงค่าเดียวเท่านั้น) กรณีนี้
อาจเกิดขึ้นรวมถึงการเข้าถึงฟิลด์สมาชิกของตัวแปร struct ที่นำเข้าจาก DLL
เช่นเดียวกับการใช้ดัชนีคงที่ในตัวแปรอาร์เรย์ที่นำเข้าจาก DLL ใด ๆ
ตัวแปรแบบหลายคำ (อาร์เรย์ โครงสร้าง แบบยาว ฯลฯ) อาจทริกเกอร์เงื่อนไขข้อผิดพลาดนี้
อย่างไรก็ตาม โดยไม่คำนึงถึงชนิดข้อมูลที่แน่นอนของตัวแปรที่ส่งออกที่ละเมิด ld will
ตรวจจับเสมอ ออกคำเตือน และออก

มีหลายวิธีในการแก้ไขปัญหานี้ โดยไม่คำนึงถึงประเภทข้อมูลของ
ตัวแปรที่ส่งออก:

วิธีหนึ่งคือการใช้สวิตช์ --enable-runtime-pseudo-reloc สิ่งนี้ทำให้ภารกิจของ
การปรับการอ้างอิงในโค้ดไคลเอ็นต์ของคุณสำหรับสภาวะแวดล้อมรันไทม์ ดังนั้นวิธีนี้จึงได้ผล
เฉพาะเมื่อสภาพแวดล้อมรันไทม์สนับสนุนคุณลักษณะนี้

วิธีที่สองคือการบังคับ 'ค่าคงที่' ตัวใดตัวหนึ่งให้เป็นตัวแปร - นั่นคือ
ไม่รู้จักและไม่สามารถเพิ่มประสิทธิภาพได้ในขณะรวบรวม สำหรับอาร์เรย์ มีความเป็นไปได้สองประการ:
a) ทำให้ indexee (ที่อยู่ของอาร์เรย์) เป็นตัวแปรหรือ b) สร้างดัชนี 'ค่าคงที่'
ตัวแปร. ดังนั้น:

ประเภทภายนอก extern_array[];
extern_array[1] -->
{ ประเภทระเหย *t=extern_array; ที[1] }

or

ประเภทภายนอก extern_array[];
extern_array[1] -->
{ int ระเหย t=1; extern_array[t] }

สำหรับโครงสร้าง (และประเภทข้อมูลที่มีหลายคำอื่นๆ ส่วนใหญ่) ตัวเลือกเดียวคือสร้าง
struct ตัวเอง (หรือ long long หรือ ...) ตัวแปร:

extern struct ของ extern_struct;
extern_struct.field -->
{ โครงสร้างระเหย s *t=&extern_struct; t->ฟิลด์ }

or

extern ยาว extern_ll;
extern_ll -->
{ ยาวผันผวนยาว * local_ll=&extern_ll; *local_ll }

วิธีที่สามในการจัดการกับความยากนี้คือละทิ้ง 'การนำเข้าอัตโนมัติ' สำหรับ
สัญลักษณ์ที่ละเมิดและทำเครื่องหมายด้วย "__declspec(dllimport)" อย่างไรก็ตามในทางปฏิบัตินั้น
ต้องการใช้เวลาคอมไพล์ #defines เพื่อระบุว่าคุณกำลังสร้าง DLL หรือไม่
การสร้างรหัสลูกค้าที่จะเชื่อมโยงไปยัง DLL หรือเพียงแค่สร้าง/เชื่อมโยงไปยัง static
ห้องสมุด. ในการเลือกระหว่างวิธีการต่างๆในการแก้ไข 'โดยตรง
จัดการกับปัญหาการชดเชยคงที่ คุณควรพิจารณาการใช้งานจริงโดยทั่วไป:

เดิม:

--foo.h
ภายนอก int arr[];
--foo.c
#รวม "foo.h"
โมฆะ main (int argc, ถ่าน **argv){
printf("%d\n",arr[1]);
}

โซลูชัน 1:

--foo.h
ภายนอก int arr[];
--foo.c
#รวม "foo.h"
โมฆะ main (int argc, ถ่าน **argv){
/* วิธีแก้ปัญหานี้มีไว้สำหรับ win32 และ cygwin; อย่า "เพิ่มประสิทธิภาพ" */
int ผันผวน *parr = arr;
printf("%d\n",parr[1]);
}

โซลูชัน 2:

--foo.h
/* หมายเหตุ: ถือว่าส่งออกอัตโนมัติ (ไม่มี __declspec(dllexport)) */
#if (กำหนด (_WIN32) || กำหนด (__CYGWIN__)) && \
!( กำหนด (FOO_BUILD_DLL) || กำหนด (FOO_STATIC))
#define FOO_IMPORT __declspec (dllimport)
#อื่น
#define FOO_IMPORT
#endif
ภายนอก FOO_IMPORT int arr[];
--foo.c
#รวม "foo.h"
โมฆะ main (int argc, ถ่าน **argv){
printf("%d\n",arr[1]);
}

วิธีที่สี่ในการหลีกเลี่ยงปัญหานี้คือการเข้ารหัสไลบรารีของคุณใหม่เพื่อใช้ฟังก์ชัน
อินเทอร์เฟซแทนที่จะเป็นอินเทอร์เฟซข้อมูลสำหรับตัวแปรที่ละเมิด (เช่น set_foo() และ
get_foo() ฟังก์ชั่นเสริม) [ตัวเลือกนี้เฉพาะสำหรับพอร์ตเป้าหมาย i386 PE
ของลิงเกอร์]

--disable-auto-import
อย่าพยายามเชื่อมโยง "_symbol" กับ "__imp__symbol" ที่ซับซ้อนสำหรับ DATA
นำเข้าจาก DLL [ตัวเลือกนี้เฉพาะสำหรับพอร์ตเป้าหมาย i386 PE ของ
ลิงเกอร์]

--enable-runtime-หลอก-reloc
หากโค้ดของคุณมีนิพจน์ที่อธิบายไว้ในส่วน --enable-auto-import นั่นคือ
การนำเข้าข้อมูลจาก DLL โดยมีค่าออฟเซ็ตที่ไม่ใช่ศูนย์ สวิตช์นี้จะสร้างเวกเตอร์ของ
'การย้ายตำแหน่งหลอกรันไทม์' ซึ่งสามารถใช้โดยสภาพแวดล้อมรันไทม์เพื่อปรับ
การอ้างอิงถึงข้อมูลดังกล่าวในรหัสลูกค้าของคุณ [ตัวเลือกนี้เฉพาะสำหรับ i386 PE
พอร์ตเป้าหมายของตัวเชื่อมโยง]

--disable-runtime-หลอก-reloc
อย่าสร้างการโยกย้ายหลอกสำหรับการนำเข้าข้อมูลออฟเซ็ตที่ไม่ใช่ศูนย์จาก DLL [นี้
ตัวเลือกนั้นเฉพาะกับพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--enable-extra-pe-debug
แสดงข้อมูลการดีบักเพิ่มเติมที่เกี่ยวข้องกับการกระตุกสัญลักษณ์การนำเข้าอัตโนมัติ [ตัวเลือกนี้คือ
เฉพาะสำหรับพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--ส่วนการจัดตำแหน่ง
ตั้งค่าการจัดตำแหน่งส่วน ส่วนในหน่วยความจำจะเริ่มต้นตามที่อยู่ซึ่ง
เป็นผลคูณของจำนวนนี้ ค่าเริ่มต้นเป็น 0x1000 [ตัวเลือกนี้เฉพาะสำหรับ
พอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--ซ้อนกัน สำรอง
--ซ้อนกัน สำรอง,ผูกมัด
ระบุจำนวนไบต์ของหน่วยความจำที่จะสำรอง (และเลือกที่จะคอมมิต) เพื่อใช้เป็น
สแต็คสำหรับโปรแกรมนี้ ค่าเริ่มต้นคือ 2MB สงวนไว้ 4K คอมมิต [ตัวเลือกนี้คือ
เฉพาะสำหรับพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

--ระบบย่อย ที่
--ระบบย่อย ที่:สำคัญ
--ระบบย่อย ที่:สำคัญ.ผู้เยาว์
ระบุระบบย่อยที่โปรแกรมของคุณจะดำเนินการ ค่านิยมทางกฎหมายสำหรับ
ที่ คือ "เนทีฟ" "วินโดว์" "คอนโซล" "โพซิกซ์" และ "เอ็กซ์บ็อกซ์" คุณสามารถเลือกตั้งค่า
เวอร์ชันระบบย่อยด้วย นอกจากนี้ยังยอมรับค่าตัวเลขสำหรับ ที่. [ตัวเลือกนี้
เฉพาะกับพอร์ตเป้าหมาย i386 PE ของตัวเชื่อมโยง]

ตัวเลือกต่อไปนี้ตั้งค่าสถานะในฟิลด์ "DllCharacteristics" ของไฟล์ PE
ส่วนหัว: [ตัวเลือกเหล่านี้เฉพาะกับพอร์ตเป้าหมาย PE ของตัวเชื่อมโยง]

--high-entropy-va
รูปภาพเข้ากันได้กับการสุ่มเค้าโครงพื้นที่แอดเดรส 64 บิต (ASLR)

--ไดนามิกเบส
ที่อยู่ฐานรูปภาพอาจถูกย้ายโดยใช้การสุ่มเค้าโครงพื้นที่ที่อยู่
(ASLR). คุณลักษณะนี้ถูกนำมาใช้กับ MS Windows Vista สำหรับเป้าหมาย i386 PE

--forceinteg
มีการบังคับใช้การตรวจสอบความสมบูรณ์ของรหัส

--nxcompat
รูปภาพนี้เข้ากันได้กับ Data Execution Prevention คุณลักษณะนี้คือ
เปิดตัวพร้อมกับ MS Windows XP SP2 สำหรับเป้าหมาย i386 PE

--no-แยก
แม้ว่าภาพจะเข้าใจถึงความโดดเดี่ยว แต่อย่าแยกภาพออก

--no-seh
รูปภาพไม่ได้ใช้ SEH ไม่สามารถเรียกตัวจัดการ SE จากภาพนี้

--ไม่ผูกมัด
อย่าผูกภาพนี้

--wdmdriver
ไดรเวอร์ใช้รุ่นไดรเวอร์ MS Windows

--tsaware
รูปภาพเป็น Terminal Server ที่ทราบ

--insert-ประทับเวลา
--no-insert-timestamp
แทรกการประทับเวลาจริงลงในรูปภาพ นี่เป็นพฤติกรรมเริ่มต้นตามที่ตรงกัน
รหัสเดิมและหมายความว่ารูปภาพจะทำงานร่วมกับเครื่องมืออื่น ๆ ที่เป็นกรรมสิทธิ์ NS
ปัญหาของค่าปริยายนี้คือจะส่งผลให้ภาพต่างกันเล็กน้อย
ผลิตทุกครั้งที่มีการเชื่อมโยงแหล่งที่มาเดียวกัน ทางเลือก --no-insert-timestamp สามารถ
ใช้เพื่อแทรกค่าศูนย์สำหรับการประทับเวลา เพื่อให้แน่ใจว่าไบนารีถูกสร้างขึ้น
จากแหล่งที่เหมือนกันจะเปรียบเทียบเหมือนกัน

เป้าหมาย C6X uClinux ใช้รูปแบบไบนารีที่เรียกว่า DSBT เพื่อรองรับไลบรารีที่ใช้ร่วมกัน แต่ละ
ไลบรารีที่ใช้ร่วมกันในระบบจำเป็นต้องมีดัชนีเฉพาะ ไฟล์เรียกทำงานทั้งหมดใช้ดัชนีของ
0.

--dsbt-ขนาด ขนาด
ตัวเลือกนี้กำหนดจำนวนรายการใน DSBT ของไฟล์ปฏิบัติการหรือแชร์ปัจจุบัน
ห้องสมุดถึง ขนาด. ค่าเริ่มต้นคือการสร้างตารางที่มี 64 รายการ

--dsbt-index ดัชนี
อ็อพชันนี้ตั้งค่าดัชนี DSBT ของไลบรารีปฏิบัติการหรือไลบรารีที่แบ่งใช้ปัจจุบันเป็น ดัชนี.
ค่าดีฟอลต์คือ 0 ซึ่งเหมาะสำหรับการสร้างไฟล์เรียกทำงาน หากมีการแบ่งปัน
ไลบรารีถูกสร้างขึ้นด้วยดัชนี DSBT เป็น 0 รีล็อก "R_C6000_DSBT_INDEX" คือ
คัดลอกไปยังไฟล์ที่ส่งออก

พื้นที่ปลูก --no-merge-exidx-entries สวิตช์ปิดใช้งานการรวมรายการ exidx ที่อยู่ติดกันใน
ข้อมูลการคลายเฟรม

ตัวเชื่อมโยง 68HC11 และ 68HC12 รองรับตัวเลือกเฉพาะเพื่อควบคุมคลังหน่วยความจำ
การสลับการทำแผนที่และการสร้างรหัสแทรมโพลีน

--ไม่มีแทรมโพลีน
ตัวเลือกนี้ปิดใช้งานการสร้างแทรมโพลีน โดยค่าเริ่มต้น แทรมโพลีนคือ
สร้างขึ้นสำหรับแต่ละฟังก์ชัน far ซึ่งเรียกว่าโดยใช้คำสั่ง "jsr" (นี้
เกิดขึ้นเมื่อใช้ตัวชี้ไปยังฟังก์ชันไกล)

--ธนาคาร-หน้าต่าง ชื่อ
ตัวเลือกนี้ระบุตัวเชื่อมโยงถึงชื่อของขอบเขตหน่วยความจำใน หน่วยความจำ
ข้อกำหนดที่อธิบายหน้าต่างคลังหน่วยความจำ คำจำกัดความของภูมิภาคดังกล่าวคือ
จากนั้นตัวเชื่อมโยงจะใช้เพื่อคำนวณการเพจและที่อยู่ในหน้าต่างหน่วยความจำ

รองรับตัวเลือกต่อไปนี้เพื่อควบคุมการจัดการรุ่น GOT เมื่อเชื่อมโยงสำหรับ
เป้าหมาย 68K

--got=ชนิด
ตัวเลือกนี้จะบอกตัวเชื่อมโยงว่าจะใช้รูปแบบการสร้าง GOT ใด ชนิด ควรจะเป็นหนึ่ง
of เดียว, เชิงลบ, multigot or เป้า. สำหรับข้อมูลเพิ่มเติม โปรดดูที่ รายการข้อมูล
for ld.

รองรับตัวเลือกต่อไปนี้เพื่อควบคุมการสร้างคำสั่ง microMIPS เมื่อ
การเชื่อมโยงสำหรับเป้าหมาย MIPS

--insn32
--no-insn32
ตัวเลือกเหล่านี้ควบคุมการเลือกคำสั่ง microMIPS ที่ใช้ในโค้ดที่สร้างโดย
ตัวเชื่อมโยง เช่น นั้นใน PLT หรือต้นขั้วการจับแบบสันหลังยาว หรือในลักษณะคลายเครียด ถ้า
--insn32 ใช้ จากนั้นตัวเชื่อมโยงจะใช้การเข้ารหัสคำสั่งแบบ 32 บิตเท่านั้น โดยค่าเริ่มต้น
หรือถ้า --no-insn32 ใช้การเข้ารหัสคำสั่งทั้งหมดรวมถึง 16 บิต
ที่เป็นไปได้.

และพวกเรา


คุณสามารถเปลี่ยนพฤติกรรมของ ld ด้วยตัวแปรสภาพแวดล้อม "GNUTARGET"
"LDEMULATION" และ "COLLECT_NO_DEMANGLE"

"GNUTARGET" กำหนดรูปแบบอ็อบเจ็กต์อินพุตไฟล์หากคุณไม่ได้ใช้ -b (หรือคำพ้องความหมาย
--รูปแบบ). ค่าควรเป็นหนึ่งในชื่อ BFD สำหรับรูปแบบอินพุต ถ้าไม่มี
"GNUTARGET" ในสภาพแวดล้อม ld ใช้รูปแบบธรรมชาติของเป้าหมาย ถ้า "GNUTARGET"
ถูกตั้งค่าเป็น "ค่าเริ่มต้น" จากนั้น BFD จะพยายามค้นหารูปแบบอินพุตโดยตรวจสอบไบนารี
ไฟล์อินพุต; วิธีนี้มักจะสำเร็จ แต่ก็มีความคลุมเครือที่อาจเกิดขึ้นได้
ไม่ใช่วิธีการตรวจสอบให้แน่ใจว่าตัวเลขวิเศษที่ใช้ระบุรูปแบบไฟล์อ็อบเจ็กต์คือ
มีเอกลักษณ์. อย่างไรก็ตาม ขั้นตอนการกำหนดค่าสำหรับ BFD ในแต่ละระบบจะวาง
รูปแบบทั่วไปสำหรับระบบนั้นก่อนในรายการค้นหา ดังนั้นความกำกวมจึงได้รับการแก้ไข
เพื่อประโยชน์ของการประชุม

"LDEMULATION" กำหนดการจำลองเริ่มต้นหากคุณไม่ได้ใช้ -m ตัวเลือก
การจำลองสามารถส่งผลกระทบต่อลักษณะการทำงานของตัวเชื่อมโยงในด้านต่างๆ โดยเฉพาะอย่างยิ่งตัวเชื่อมโยงเริ่มต้น
สคริปต์ คุณสามารถแสดงรายการการจำลองที่พร้อมใช้งานด้วย --verbose or -V ตัวเลือก. ถ้า
-m ไม่ได้ใช้ตัวเลือกและไม่ได้กำหนดตัวแปรสภาพแวดล้อม "LDEMULATION"
การจำลองเริ่มต้นขึ้นอยู่กับการกำหนดค่าตัวเชื่อมโยง

โดยปกติลิงเกอร์จะใช้ค่าเริ่มต้นเป็นสัญลักษณ์แยกส่วน อย่างไรก็ตาม ถ้า
"COLLECT_NO_DEMANGLE" ถูกตั้งค่าในสภาพแวดล้อม จากนั้นจะมีค่าเริ่มต้นเป็นไม่แยกส่วน
สัญลักษณ์ ตัวแปรสภาพแวดล้อมนี้ถูกใช้ในลักษณะที่คล้ายกันโดยตัวเชื่อมโยง "gcc"
โปรแกรมห่อ ค่าเริ่มต้นอาจถูกแทนที่โดย --demangle และ --no-demangle
ตัวเลือก

ใช้ mips-linux-gnu-ld ออนไลน์โดยใช้บริการ onworks.net


Ad


Ad

โปรแกรมออนไลน์ Linux และ Windows ล่าสุด