2010-12-12 13 views
0
make ARCH=arm msm_defconfig 
make ARCH=arm CROSS_COMPILE=$SOURCE_FOLDER/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- zImage -j4 

Ich möchte Android-Kernel zu bauen, und ich habe einige Tutorial dazu finden. und ich habe den obigen Befehl gefunden. Ich möchte wissen, wie dieser Befehl funktioniert. Also, wenn jemand es erklären oder mir ein paar Referenzen dazu geben kann, wird das besser.kann mir jemand diesen Befehl erklären (make ARCH)?

Vielen Dank im Voraus!

Antwort

2

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

+0

Vielen Dank, Ihre Informationen sind sehr hilfreich. – MemoryLeak

+0

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

+0

@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

1

Parameter zu make mit = werden in Variablen im Makefile konvertiert. -j weist make an, mehrere parallele Prozesse auszuführen, um den Build zu verarbeiten. Das verbleibende Argument ist das Build-Ziel. Sehen Sie sowohl Makefile im aktuellen Verzeichnis als auch die GNU make Dokumentation für weitere Details.

+0

Vielen Dank für Ihre -j Parameter zu erklären. – MemoryLeak

Verwandte Themen