ภาษาอังกฤษภาษาฝรั่งเศสสเปน

Ad


ไอคอน Fav ของ OnWorks

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

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

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

โครงการ:

ชื่อ


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

เรื่องย่อ


แอลดี [ตัวเลือก] อ็อบเจกต์ไฟล์ ...

DESCRIPTION


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

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

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

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

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

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

OPTIONS


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ดู -( ตัวเลือกสำหรับวิธีบังคับตัวเชื่อมโยงเพื่อค้นหาเอกสารสำคัญ
หลายครั้ง.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ตัวเลือกที่ครอบคลุมคือ: -บีไดนามิค, -บีสแตติก, -dn, - ดี,
-call_shared, -ไม่แชร์, -คงที่, -N, -n, --ทั้งคลัง,
--no-ทั้งเก็บถาวร, -r, -เออ, --copy-dt-need-รายการ,
--no-copy-dt-need-รายการ, --ตามความจำเป็น, --ไม่จำเป็นและ -a.

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

-Wl,--push-state,--ตามต้องการ -libone -libtwo -Wl,--pop-state

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

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

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

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

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

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

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

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

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

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

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

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

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

-ดีที ไฟล์สคริปต์
--default-สคริปต์=ไฟล์สคริปต์
ใช้ ไฟล์สคริปต์ เป็นสคริปต์ตัวเชื่อมโยงเริ่มต้น

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

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

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

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

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

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

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

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

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

"เตือน"
ลิงเกอร์จะวางส่วนเด็กกำพร้าสำหรับ "สถานที่" และ
ออกคำเตือนด้วย

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ไม่มีคอมเบรล็อค
ปิดใช้งานการรวมหลายส่วน reloc

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

bndplt
สร้างคำนำหน้า BND ในรายการ PLT เสมอ รองรับสำหรับ
ลินุกซ์/x86_64.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

--no-ทั้งเก็บถาวร
ปิดเอฟเฟกต์ของ --ทั้งคลัง ทางเลือกต่อไป
ไฟล์เก็บถาวร

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3. บนระบบ ELF สำหรับตัวเชื่อมโยงดั้งเดิม ถ้า -rpath และ
-rpath-ลิงค์ ไม่ได้ใช้ตัวเลือกค้นหาเนื้อหาของ
ตัวแปรสภาพแวดล้อม "LD_RUN_PATH"

4. บน SunOS ถ้า -rpath ไม่ได้ใช้ตัวเลือก ค้นหาใด ๆ
ไดเร็กทอรีที่ระบุโดยใช้ -L ตัวเลือก

5. สำหรับตัวเชื่อมโยงดั้งเดิม ค้นหาเนื้อหาของสภาพแวดล้อม
ตัวแปร "LD_LIBRARY_PATH"

6. สำหรับตัวเชื่อมโยง ELF ดั้งเดิม ไดเร็กทอรีใน "DT_RUNPATH" หรือ
ค้นหา "DT_RPATH" ของไลบรารีที่ใช้ร่วมกัน
ห้องสมุดที่จำเป็นโดยมัน รายการ "DT_RPATH" จะถูกละเว้น if
มีรายการ "DT_RUNPATH"

7. ไดเร็กทอรีดีฟอลต์ โดยปกติ / lib และ / usr / lib.

8. สำหรับตัวเชื่อมโยงดั้งเดิมบนระบบ ELF ถ้าไฟล์
/etc/ld.so.conf มีอยู่, รายการของไดเร็กทอรีที่พบในนั้น
ไฟล์

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

- แบ่งปัน
-แชร์ได้
สร้างห้องสมุดที่ใช้ร่วมกัน ขณะนี้รองรับเฉพาะ 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 แทนที่
กำหนดค่าเวลาเริ่มต้น ตัวเลือกนี้รองรับเฉพาะตัวเชื่อมโยง
ที่กำหนดค่าโดยใช้ --ด้วย-sysroot.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

--เอ๊ะ-กรอบ HDR
ขอสร้างส่วน ".eh_frame_hdr" และ ELF
ส่วนหัวของเซ็กเมนต์ "PT_GNU_EH_FRAME"

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

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

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

--แฮชสไตล์=สไตล์
กำหนดประเภทของตารางแฮชของลิงเกอร์ สไตล์ สามารถเป็นได้ทั้ง "sysv"
สำหรับส่วน ".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 ดีบักส่วนต่างๆ
ถูกบีบอัดโดยใช้ zlib --compress-debug-sections=none ไม่
บีบอัดส่วนการดีบัก DWARF --compress-debug-sections=zlib-gnu
บีบอัดส่วนดีบัก DWARF และเปลี่ยนชื่อส่วนดีบักเป็น
เริ่มด้วย .zdebug แทน .debug.
--compress-debug-sections=zlib และ
--compress-debug-sections=zlib-gabi บีบอัดส่วนการดีบัก DWARF
ด้วย SHF_COMPRESSED จาก ELF ABI พฤติกรรมเริ่มต้นจะแตกต่างกันไป
ขึ้นอยู่กับเป้าหมายที่เกี่ยวข้องและตัวเลือกการกำหนดค่าที่ใช้
เพื่อสร้าง toolchain ค่าเริ่มต้นสามารถกำหนดได้โดยการตรวจสอบ
ผลลัพธ์จากตัวเชื่อมโยงของ --ช่วยด้วย ตัวเลือก

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

or

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

สำหรับโครงสร้าง (และประเภทข้อมูลหลายคำอื่น ๆ ส่วนใหญ่) ตัวเลือกเดียว
คือการสร้างโครงสร้างเอง (หรือ 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)" อย่างไรก็ตามในทางปฏิบัติที่ต้องใช้
compile-time #defines เพื่อระบุว่าคุณกำลังสร้าง DLL หรือไม่
การสร้างรหัสลูกค้าที่จะเชื่อมโยงไปยัง DLL หรือเพียง
การสร้าง/เชื่อมโยงไปยังไลบรารีแบบคงที่ ในการตัดสินใจเลือก
ระหว่างวิธีการต่างๆในการแก้ไข 'ที่อยู่โดยตรงกับ
ปัญหาออฟเซ็ตคงที่ คุณควรพิจารณาโลกความจริงทั่วไป
การใช้งาน:

เดิม:

--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)
#อื่น
#กำหนด FOO_IMPORT
#เอนดิฟ
ภายนอก FOO_IMPORT int arr[];
--foo.c
#รวม "foo.h"
โมฆะ main (int argc, ถ่าน **argv){
printf("%d\n",arr[1]);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

--ตสะแวร์
รูปภาพเป็น Terminal Server ที่ทราบ

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

เป้าหมาย C6X uClinux ใช้รูปแบบไบนารีที่เรียกว่า DSBT เพื่อรองรับ
ห้องสมุดที่ใช้ร่วมกัน ไลบรารีที่แบ่งใช้แต่ละรายการในระบบต้องมี a
ดัชนีไม่ซ้ำกัน; ไฟล์เรียกทำงานทั้งหมดใช้ดัชนี 0

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

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

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

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

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

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

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

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

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

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

และพวกเรา


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

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

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

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

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


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

  • 1
    เอ็มซิส2
    เอ็มซิส2
    MSYS2 คือชุดเครื่องมือและ
    ห้องสมุดที่ให้คุณ
    สภาพแวดล้อมที่ง่ายต่อการใช้งานสำหรับอาคาร
    การติดตั้งและใช้งาน Windows ดั้งเดิม
    ซอฟต์แวร์. มันคอน...
    ดาวน์โหลด MSYS2
  • 2
    libjpeg-เทอร์โบ
    libjpeg-เทอร์โบ
    libjpeg-turbo เป็นตัวแปลงสัญญาณภาพ JPEG
    ที่ใช้คำสั่ง SIMD (MMX, SSE2,
    NEON, AltiVec) เพื่อเร่งการตรวจวัดพื้นฐาน
    เปิดการบีบอัดและคลายการบีบอัด JPEG
    x86,x8...
    ดาวน์โหลด libjpeg-turbo.dll
  • 3
    ตัวจัดการการดาวน์โหลด Xtreme
    ตัวจัดการการดาวน์โหลด Xtreme
    โครงการมีบ้านใหม่ในขณะนี้:
    https://xtremedownloadmanager.com/ For
    นักพัฒนา:
    https://github.com/subhra74/xdm Xtreme
    Download Manager เป็นเครื่องมือที่ทรงพลังสำหรับ...
    ดาวน์โหลด Xtreme Download Manager
  • 4
    TTGO VGA32 Lite
    TTGO VGA32 Lite
    คุณสมบัติ: ความละเอียดต่ำ 4:3 และ 16:9
    เอาต์พุต VGA PS/2 แป้นพิมพ์และเมาส์
    อินเทอร์เฟซผู้ใช้แบบป้อนข้อความ (TUI)
    ด้วยตัวจัดการไดอะล็อก Partial Unicode
    supportSlave ดิส...
    ดาวน์โหลด TTGO VGA32 Lite
  • 5
    โคลเวอร์ EFI bootloader
    โคลเวอร์ EFI bootloader
    ย้ายโครงการไปที่
    https://github.com/CloverHackyColor/CloverBootloader..
    คุณสมบัติ:บูต macOS, Windows และ Linux
    ใน UEFI หรือโหมดดั้งเดิมบน Mac หรือ PC ด้วย
    ยู...
    ดาวน์โหลด Clover EFI bootloader
  • 6
    unit rpms
    unit rpms
    เข้าร่วมกับเราใน Gitter!
    https://gitter.im/unitedrpms-people/Lobby
    เปิดใช้งานที่เก็บ URPMS ในของคุณ
    ระบบ -
    https://github.com/UnitedRPMs/unitedrpms.github.io/bl...
    ดาวน์โหลด unitedrpms
  • เพิ่มเติม»

คำสั่ง Linux

Ad