gcc-multilib มีความหมายอย่างไรกับ Ubuntu


11

หลังจากใช้เวลานานกับ Ubuntu รุ่นเก่า (v.12) ฉันกำลังอัปเดตเป็น v.16 และสับสนมากกับคำกล่าวของ "gcc-multilib"

อันนี้จริง ๆ แล้วของ Apple "fat ไบนารี" หรือ " universal ไบนารี " รุ่น ported กับ Linux?

นั่นคือมีไลบรารี C ดั้งเดิมบน Ubuntu กลายเป็นคอนเทนเนอร์ที่บรรจุหลายไบนารีสำหรับสถาปัตยกรรมที่หลากหลายหรือไม่

ถ้าใช่เราไม่จำเป็นต้องติดตั้ง libs runtime 32- บิตพิเศษบนระบบ x64 อีกต่อไป? แพ็คเกจ "เริ่มต้น" ของไลบรารี gcc หรือ g ++ นั้นมีทั้งหมดที่จำเป็นในการเรียกใช้และสร้างแอพ 32 บิตหรือไม่?

คำตอบ:


13

gcc-multilibมีประโยชน์สำหรับการคอมไพล์ข้ามซึ่งก็คือการคอมไพล์โปรแกรมเพื่อรันบนสถาปัตยกรรมตัวประมวลผลอื่น ตัวอย่างเช่นคุณจะต้องใช้gcc-multilibถ้าคุณใช้ Ubuntu แบบ 64 บิตและต้องการคอมไพล์โปรแกรมให้ทำงานบน Ubuntu แบบ 32 บิต (หรือบน ARM และอื่น ๆ ที่คุณเข้าใจ)


1
ดังนั้นมันไม่เกี่ยวข้องกับ runtime library? เรายังต้องผ่านห่วงและติดตั้ง "libc-i386", "g ++ - i386" และอื่น ๆ บน libs 32 บิตเพื่อเรียกใช้โปรแกรม 32 บิตบน x64 หรือไม่? และ "dpkg --add-architecture i386" เกี่ยวข้องกับ multilib หรือไม่
ddbug

ใช่. ห่วงปกติ dpkg --add-architectureเพียงแค่บอกว่าคุณต้องการติดตั้งแพคเกจสำหรับสถาปัตยกรรมต่างประเทศและมันควรจะหยุดบ่นและขอให้dpkg --force-architecture
AlexP

ขอบคุณ AlexP การตั้งค่า multilib ใหม่นี้สำหรับ Ubuntu 16 หรือมีอยู่ก่อนหน้านี้พูดใน v.14 หรือแม้แต่ 12
ddbug

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