Perbedaan antara Cross GCC dan Linux GCC toolchain

24

Saat membuat Proyek C ++ baru di Eclipse, saya ditanya tentang toolchain.

Apa perbedaan praktis antara alat-alat ini - Cross GCCdan Linux GCC. Dalam keadaan apa menggunakannya? Apakah ada hubungannya dengan apakah proyek akan dikompilasi baik di mesin linux dan windows?

Dalam salah satu jawaban kita dapat membaca:

Umumnya kompiler silang adalah kompiler yang menghasilkan kode untuk sistem yang berbeda dari milik Anda.

jadi jika saya mengkompilasi proyek pada mesin target menggunakan makefiles sendiri, tidak masalah opsi apa yang akan saya pilih di sini, kan?

Wiktor
sumber
10
Cross GCC berarti bahwa Anda sedang mengkompilasi proyek Anda untuk arsitektur yang berbeda, misalnya Anda memiliki prosesor x86 dan ingin mengkompilasi untuk ARM. Linux GCC hanya berarti GCC standar
Ulrich Dangel

Jawaban:

16

Artikel Cross compiler di wikipedia cukup bagus. Umumnya kompiler silang adalah kompiler yang menghasilkan kode untuk sistem yang berbeda dari milik Anda. Biasanya ini berarti arsitektur perangkat keras target yang berbeda, tetapi juga dapat berarti sistem operasi target yang berbeda (atau keduanya).

Secara teoritis Anda dapat menggabungkan ini dan menggunakan cross-compiler pada arsitektur A 1 dan sistem operasi S 1 untuk membangun cross-compiler yang akan berjalan pada arsitektur A 2 di bawah sistem operasi S 2 dan menghasilkan kode untuk sistem operasi S 3 pada arsitektur A 3 .

Seperti yang disebutkan Ulrich dalam komentarnya, Linux GCC harus menjadi kompiler "asli" Anda (yaitu untuk target yang sama).

peterph
sumber