make ARCH=arm
wird angeben, dass dies ein beabsichtigter Build für die ARM-Architektur ist, da Sie Cross-Compiling auf einem Nicht-ARM-System durchführen. CROSS_COMPILE
gibt den Namen an, der an Tools angehängt werden soll, damit die richtigen Tools zum Generieren der resultierenden Objektdateien und Binärdateien verwendet werden.
ARCH=arm
ist eigentlich eine lokale Umgebungsvariable (aus Mangel an dem offiziellen Begriff) - Sie könnten es als eine Umgebungsvariable festgelegt haben. Das Gleiche gilt für CROSS_COMPILE
export ARCH=arm
export CROSS_COMPILE="..."
make -j4 zImage
Obwohl, wenn du das getan hast, könnten Sie Ihre Umgebung für alle make
Befehle ausgeführt beeinflussen.
bearbeiten Die einzige Ressource, die bei der Erklärung dieser beiden Fahnen in irgendeiner Weise nützlich schien, wie alle anderen im Grunde sagt zu kopieren, was sie tun, ohne sie vollständig zu erklären: http://book.opensourceproject.org.cn/embedded/oreillybuildembed/opensource/belinuxsys-chp-5-sect-3.html
Vielen Dank, Ihre Informationen sind sehr hilfreich. – MemoryLeak
meinst du, ich muss das richtige Toolset entsprechend meiner kompilierenden Plattform wählen, wie zum Beispiel "$ SOURCE_FOLDER/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-" oder? – MemoryLeak
@MemoryLeak - der 'arm-eabi-' Teil wird an die Werkzeugnamen angehängt, so wird zum Beispiel der zu verwendende 'gcc' Compiler' arm-eabi-gcc' sein. – birryree