Könnte mir jemand die genaue Definition von Cross-Kompilierung erklären? Ich frage das, weil.
- Wenn ein Programm für eine andere Plattform (Betriebssystem) als die Hostplattform kompiliert wird, auf der der Code kompiliert wird, wird dies oft als Cross-Kompilierung bezeichnet.
Z. B.: Kompilieren für Linux-Arm unter Windows.
- Wenn Sie andererseits ein Programm auf einem Linux-Desktop (i386-Architektur) kompilieren, um es auf Linux Arm (ARM-Architektur) auszuführen, kann dieser Prozess als Cross-Kompilierung bezeichnet werden?
Danke schön.
Antwort1
Der Begriff Plattform umfasst alle Details zum Computer, auf dem das Programm kompiliert und/oder ausgeführt wird. Dazu gehören Dinge wie:
- CPU: Befehlssatz (x86, x86_64, ARM), Byte-Reihenfolge (Big Endian, Littel Endian)
- Compiler: Sprache (z. B. C90, C99, C11), Hersteller (GCC, LLVM)
- Bibliotheken, zum Beispiel glibc und BSD libc, malloc und jemalloc
- Betriebssystem
Wenn die Plattform, auf der das Programm kompiliert wird, eine andere ist als die, auf der es ausgeführt wird, handelt es sich um Cross-Kompilierung. In Ihrem speziellen Fall ist die CPU anders.