3
ทำไมคอมไพเลอร์โดยทั่วไปสร้างไฟล์ปฏิบัติการสำหรับแพลตฟอร์มที่ติดตั้งไว้เท่านั้น?
ฉันเป็นนักพัฒนา C ++ และในความพยายามที่จะเข้าใจการพัฒนาข้ามแพลตฟอร์มได้ดียิ่งขึ้นฉันพยายามทำความเข้าใจกับรายละเอียดการใช้งานคอมไพเลอร์ให้ดีขึ้นและพวกเขาสร้างไบนารีเฉพาะระบบปฏิบัติการได้อย่างไร ในระหว่างการศึกษาของฉันฉันรู้ว่าอย่างน้อยก็ชั่วขณะคอมไพเลอร์ส่วนใหญ่ที่คุณดาวน์โหลดสำหรับแพลตฟอร์มเฉพาะรวบรวมไบนารีสำหรับแพลตฟอร์มนั้นเท่านั้น ดังนั้นถ้าคุณดาวน์โหลด IDE ที่มาพร้อมกับคอมไพเลอร์ exe สำหรับ Windows คอมไพเลอร์นั้นจะสามารถรวบรวมโปรแกรมของคุณสำหรับแอปพลิเคชัน windows x86-x64 และไม่ใช่แอปพลิเคชัน Linux หรือ Mac ตอนนี้ฉันเข้าใจแล้วว่าแพลตฟอร์มต่าง ๆ ต้องการรูปแบบไบนารีที่แตกต่างกัน แต่สิ่งที่ทำให้พูดคอมไพเลอร์ Visual C ++ บน windows เพื่อสร้างไฟล์ปฏิบัติการไบนารีของ linux ทำได้ยาก? ตราบใดที่คุณมีคำแนะนำการประกอบสำหรับ CPU ที่คุณใช้งานอยู่รวมถึงไลบรารีเฉพาะของ OS คุณไม่ควรรวบรวม exectuables สำหรับแพลตฟอร์มใด ๆ บนเครื่องใด ๆ