ความแตกต่างระหว่าง Cross GCC และ toolchain GCC Linux


24

ขณะสร้างโครงการ C ++ ใหม่ใน Eclipse ฉันถูกถามเกี่ยวกับ toolchain

อะไรคือความแตกต่างระหว่างการปฏิบัติ toolchains เหล่านี้ - และCross GCC Linux GCCใช้ในกรณีใดบ้าง มันมีบางอย่างเกี่ยวกับว่าโครงการจะถูกรวบรวมทั้งในเครื่อง Linux และ Windows?

ในหนึ่งในคำตอบเราสามารถอ่าน:

โดยทั่วไป cross compiler เป็นคอมไพเลอร์ที่สร้างรหัสสำหรับระบบที่แตกต่างจากคุณ

ดังนั้นถ้าฉันรวบรวมโครงการบนเครื่องเป้าหมายโดยใช้ makefiles ของตัวเองมันไม่สำคัญว่าตัวเลือกใดที่ฉันจะเลือกที่นี่ใช่ไหม?


10
Cross GCC หมายความว่าคุณกำลังรวบรวมโครงการของคุณสำหรับสถาปัตยกรรมที่แตกต่างกันเช่นคุณมีโปรเซสเซอร์ x86 และต้องการคอมไพล์สำหรับ ARM Linux GCC หมายถึง GCC มาตรฐาน
Ulrich Dangel

คำตอบ:


16

คอมไพเลอร์ข้ามบทความเกี่ยวกับวิกิพีเดียค่อนข้างดี โดยทั่วไป cross compiler เป็นคอมไพเลอร์ที่สร้างรหัสสำหรับระบบที่แตกต่างจากคุณ โดยปกติแล้วนี่หมายถึงสถาปัตยกรรมฮาร์ดแวร์เป้าหมายที่แตกต่างกัน แต่ก็อาจหมายถึงระบบปฏิบัติการเป้าหมายที่แตกต่างกัน (หรือทั้งสองอย่าง)

ในทางทฤษฎีคุณสามารถรวมสิ่งเหล่านี้และใช้ cross-compiler บนสถาปัตยกรรม A 1และระบบปฏิบัติการ S 1เพื่อสร้าง cross-compiler ที่จะทำงานบนสถาปัตยกรรม A 2ภายใต้ระบบปฏิบัติการ S 2และสร้างรหัสสำหรับระบบปฏิบัติการ S 3บนสถาปัตยกรรม A 3 .

ตามที่ Ulrich กล่าวถึงในความคิดเห็นของเขา Linux GCC ควรเป็นคอมไพเลอร์ "native" ของคุณ (เช่นสำหรับเป้าหมายเดียวกัน)

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