ปัญหาในการรวบรวมไบนารี 32 บิตบนเครื่อง 64 บิต


13

ฉันพยายามคอมไพล์โปรแกรม ac เป็นเลขฐานสอง 32 บิตแทน 64 บิต ฉันเริ่มต้นด้วยการเพิ่ม-m32และรับข้อผิดพลาดบางอย่าง Googling ประมาณนิดหน่อยฉันเจอโน้ตเพื่อติดตั้ง ia32-libs กำลังทำงานapt-get install ia32-libsส่งผลให้มีการแจ้งเตือนว่ามีการติดตั้งแล้วและเป็นเวอร์ชั่นใหม่ล่าสุด

มีห่วงโซ่ของไลบรารีแต่ละอันรวมถึงถัดไปจนกว่าจะล้มเหลว:

/usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory

ดูเหมือนว่าจะรวมถึงรุ่น 32 บิตอื่น ๆ รวมถึง /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/ ...

ฉันกำลังคิดถึงอะไร

คำตอบ:


40

คำตอบของ Lekensteyn ขัดแย้งกับแพ็คเกจที่มีอยู่มากมายสำหรับฉัน (บน 64 บิต oneiric)

ฉันทำสิ่งนี้แทนซึ่งดึงมาในlibc6-dev-i386แพ็คเกจ:

apt-get install gcc-multilib

7

ia32-libsเพิ่งมีบางไลบรารีความเข้ากันได้ที่ยังไม่ได้ย้ายไปยัง Multi Arch สำหรับการรวบรวมไลบรารี 32- บิตคุณต้องติดตั้งไลบรารี 32- บิตและไฟล์การพัฒนาสำหรับ C:

sudo apt-get install libc6-dev:i386

ดูเพิ่มเติม: ฟีเจอร์มัลติฮาร์ดใน 11.10 หมายถึงความตายของแรง - ติดตั้งสถาปัตยกรรมหรือไม่?


libc6-dev:i386ยืนยันการติดตั้งในการลบชุดคอมไพเลอร์ gnu ทั้งหมด (ซึ่งทำให้ฉันหัวใจวายเล็กน้อย) แต่หลังจากใช้sudo apt-get install build-essentialทุกอย่างทำงานอย่างสมบูรณ์
Matt

สำหรับฉันมันยังถอนการติดตั้ง nvidia-current ... ติดตั้งใหม่โดยไม่มีปัญหา
Jeff

1
โปรดทราบว่าตัวเลือกที่กำหนดโดย alberge นั้นดีกว่าเพราะจะไม่ลบสิ่งอื่น ๆ อีกมากมายสำหรับการติดตั้งไลบรารีแบบ 32 บิต
Fabio Zadrozny
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.