2010-12-12 134 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 

我想構建android內核,並且我找到了一些教程。我發現了上面的命令,我想知道這個命令是如何工作的?所以如果有人能解釋它或者給我一些參考資料,那會更好。有人可以向我解釋這個命令(使ARCH)嗎?

在此先感謝!

回答

2

make ARCH=arm將指定這是ARM架構的預期構建,因爲您正在非ARM系統上進行交叉編譯。 CROSS_COMPILE指定了附加到工具的名稱,以便使用正確的工具來生成結果對象文件和二進制文件。

ARCH=arm實際上是一個局部環境變量(因爲缺乏官方術語) - 您可以將其設置爲環境變量。與CROSS_COMPILE

export ARCH=arm 
export CROSS_COMPILE="..." 
make -j4 zImage 

同樣的事情,但如果你這樣做,你可能會影響您的環境中執行的所有make命令。

編輯,似乎在解釋在任何程度上這兩個標誌有用的唯一資源,爲其他人基本上說來複制他們做什麼,沒有充分解釋它:http://book.opensourceproject.org.cn/embedded/oreillybuildembed/opensource/belinuxsys-chp-5-sect-3.html

+0

非常感謝,您的信息真的很有幫助。 – MemoryLeak 2010-12-12 09:10:26

+0

你的意思是我必須根據我的編譯平臺選擇合適的工具集,比如這個「$ SOURCE_FOLDER/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-」對不對? – MemoryLeak 2010-12-12 09:16:52

+0

@MemoryLeak - arm-eabi-'部分將被附加到工具名稱中,所以例如,要使用的'gcc'編譯器將是'arm-eabi-gcc'。 – birryree 2010-12-12 20:37:02

1

將參數make=轉換爲makefile中的變量。 -j告訴make運行多個並行進程來處理構建。剩下的論點是構建目標。請參閱當前目錄中的Makefile以及GNU make文檔以獲取更多詳細信息。

+0

感謝解釋-j參數。 – MemoryLeak 2010-12-12 09:29:11

相關問題