4
ฉันไม่เข้าใจ -Wl, -rpath -Wl
เพื่อความสะดวกฉันได้เพิ่ม manpages ที่เกี่ยวข้องด้านล่าง ความเข้าใจผิดของฉันก่อน: หากฉันต้องการแยกตัวเลือกด้วย,นั่นหมายความว่าตัวเลือกที่สอง-Wlไม่ใช่ตัวเลือกอื่นเพราะมันมาก่อน,ซึ่งหมายความว่ามันเป็นอาร์กิวเมนต์ของ-rpathตัวเลือก ฉันไม่เข้าใจว่า-rpathจะมี-Wl,.ข้อโต้แย้งได้อย่างไร! สิ่งที่จะทำให้รู้สึกในใจของฉันจะเป็นเช่นนี้: -Wl,-rpath . สิ่งนี้ควรเรียกใช้ตัวเลือก -rpath linker ด้วยอาร์กิวเมนต์ไดเรกทอรีปัจจุบัน ผู้ชาย gcc: -Wl ตัวเลือก ส่งตัวเลือกเป็นตัวเลือกไปยังลิงเกอร์ หากตัวเลือกมีเครื่องหมายจุลภาคมันจะแบ่งออกเป็นหลายตัวเลือกที่เครื่องหมายจุลภาค คุณสามารถใช้ไวยากรณ์นี้เพื่อส่งผ่านข้อโต้แย้งไปยังตัวเลือก ตัวอย่างเช่น-Wl,-Map,output.mapส่งผ่าน -Map output.mapไปยังลิงเกอร์ เมื่อใช้ตัวเชื่อมโยง GNU คุณสามารถได้รับผลกระทบเดียวกันกับ `-Wl, -Map = output.map ' ผู้ชาย ld: -rpath = dir เพิ่มไดเร็กทอรีไปยังพา ธ การค้นหาไลบรารีรันไทม์ สิ่งนี้ใช้เมื่อเชื่อมโยงเอลฟ์ที่ปฏิบัติการได้กับวัตถุที่แชร์ อาร์กิวเมนต์ -rpath ทั้งหมดถูกต่อกันและส่งผ่านไปยังตัวลิงก์รันไทม์ซึ่งใช้เพื่อระบุตำแหน่งอ็อบเจ็กต์ที่แบ่งใช้ขณะรันไทม์ ตัวเลือก -rpath ยังใช้เมื่อค้นหาออบเจ็กต์ที่แชร์ซึ่งต้องการโดยออบเจกต์ร่วมที่รวมอยู่ในลิงก์อย่างชัดเจน