Может кто-нибудь объяснить, каково точное определение кросс-компиляции. Я спрашиваю об этом потому, что.
- Когда программа компилируется для платформы (операционной системы), отличной от хост-платформы, на которой компилируется код, многие называют это кросс-компиляцией.
Например: Компиляция для Linux arm на Windows.
- С другой стороны, если вы компилируете программу на Linux desktop (архитектура i386) для запуска на Linux arm (архитектура ARM). Можно ли назвать этот процесс кросс-компиляцией?
Спасибо.
решение1
Термин платформа включает в себя все детали, касающиеся компьютера, на котором программа компилируется и/или запускается. Это означает такие вещи, как:
- ЦП: набор инструкций (x86, x86_64, ARM), порядок байтов (big endian, little endian)
- компилятор: язык (например, C90, C99, C11), поставщик (GCC, LLVM)
- библиотеки, например glibc и BSD libc, malloc и jemalloc
- Операционная система
Когда платформа, на которой компилируется программа, отличается от той, на которой она запускается, вы имеете дело с кросс-компиляцией. В вашем конкретном случае отличается процессор.