ลิงค์ของฉันอยู่ใน
/lib{32,64}/ld-2.20.so
มีลิงก์สัญลักษณ์ที่
/lib32/ld-linux.so.2
และ
/lib64/ld-linux-x86-64.so.2
(ตามความเหมาะสม ld-2.20.so
s)
เมื่อฉันพยายามรันไบนารี 32 บิตทุกอย่างดี พวกเขารวบรวมปรับ (ฉันใช้ gcc แก้ไขเล็กน้อย specs
ไฟล์) และดูเหมือนว่าการเชื่อมโยงที่ดีและทำงานได้ดี
เมื่อฉันลอง ldd /path/to/example/32bit/binary
ฉันบอกแล้ว not a dynamic executable
. ความเข้าใจของฉันคือว่านี่เป็นเพราะไม่สามารถหา linker เพื่อเปิดปฏิบัติการ
readelf -l example_binary | grep interpreter
จะช่วยให้ [Requesting program interpreter: /lib32/ld-linux.so.2]
, อย่างที่คาดไว้.
ความคิดใดที่ทำให้เกิดเหตุการณ์นี้ / ฉันจะแก้ไขได้อย่างไร
ป.ล. - "ติดตั้งไลบรารีความเข้ากันได้แบบ 32 บิตโดยใช้ sudo apt get ... " ไม่มีประโยชน์เนื่องจากไม่มี apt / pacman / etcetera ถ้าฉันต้องการติดตั้งไลบรารีเฉพาะ (32 บิต) ใหม่การรู้ว่ามันจะมีประโยชน์!
P.p.s - ไฟล์สคริปต์ที่ติดตั้งโดย gcc
ที่ /usr/lib{32,64}/libc.so
จัดกลุ่มที่เหมาะสม (จริง) libc.so.6
และ libc_nonshared.a
ไฟล์ด้วย AS_NEEDED ( /lib32/ld-linux.so.2 ) )
ที่ส่วนท้ายของ lib32