Кросс-компиляция — платформа против архитектуры

Кросс-компиляция — платформа против архитектуры

Может кто-нибудь объяснить, каково точное определение кросс-компиляции. Я спрашиваю об этом потому, что.

  • Когда программа компилируется для платформы (операционной системы), отличной от хост-платформы, на которой компилируется код, многие называют это кросс-компиляцией.

Например: Компиляция для 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
  • Операционная система

Когда платформа, на которой компилируется программа, отличается от той, на которой она запускается, вы имеете дело с кросс-компиляцией. В вашем конкретном случае отличается процессор.

Связанный контент