make編譯命令

2021-08-14 04:17:35 字數 2240 閱讀 8287

1.make -jx

x表示數字,這個命令將編譯android系統並生成映象,xx表示可以使用到的cpu核數,這在配置好的電腦上特別有用,公司的16核ubuntu伺服器執行make -j16只要不到20分鐘,而雙核pc上需要4個小時!

2.make snod

3.make cts

4.make installclean

這條命令清除out目錄下對應板資料夾中的內容,也就是相當於make clean,通常如果改變了一些資料檔案(如去掉)、最好執行以下make installclean,否則殘留在out目錄下的還會被打包進去。

5.mm/mm -b

6.make sdk

這條命令可以生成可發布的sdk,目前還沒試過,據說需要jdk1.5

7.make setting

可以單獨編譯setting這個模組,目前還沒試,猜想是不是可以單獨編譯email、music這些模組

8.make bootimage

用這條命令可以生成boot.img,這個映象檔案中包含linux kernel,ram disk,生成的boot.img只能通過fastboot進行燒寫,這在只修改了linux核心的時候有用

9.make systemimage 

同上,不過是生成system.img用的。

快速編譯userdata.img,可以使用以下命令:

# make userdataimage-nodeps

但是,對於bootimage, 在不改變記憶體布局的情況下,可以使用以下命令:

#cp ./arch/arm/boot/image ./arch/arm/boot/kernel

#mkbootimg --kernel ./arch/arm/boot/kernel --ramdisk ../out/target/product/tcc8800/ramdisk.img --cmdline

console=ttytcc,115200n8 --base 0x40000000 --pagesize 8192 --output ../out/target/product/tcc8800/boot.img

其實這些生成命令都在build/core/makefile中.

生成boo.img的方法: 

$(installed_bootimage_target):$(mkbootimg) $(internal_bootimage_files)

$(mkbootimg)  $(internal_bootimage_args) --output $@

......

生成system.img的方法:

define build-systemimage-target

$(mkyaffs2) -f $(mkyaffs2_extra_flags) $(target_out) $(1)

生成userdata.img的方法

define build-userdataimage-target

mkdir -p $(target_out_data)

$(mkyaffs2) -f $(mkyaffs2_extra_flags) $(target_out_data) $(installed_userdataimage_target)

同樣,ramdisk.img的生成方法為:

built_ramdisk_target := $(product_out)/ramdisk.img

installed_ramdisk_target := $(built_ramdisk_target)

$(installed_ramdisk_target): $(mkbootfs) $(internal_ramdisk_files) | $(minigzip)

$(mkbootfs) $(target_root_out) | $(minigzip) > $@

為方便起見,也可以在makefile中加入以下內容:

built_ramdisk_target := $(product_out)/ramdisk.img

.phony: ramdiskimage

ramdiskimage: $

然後,就可以輸入:make ramdiskimage 來編譯ramdisk.img檔案了

最簡單的方法是:

out/host/linux-x86/bin/mkbootfs out/target/product/tcc8900/root |

out/host/linux-x86/bin/minigzip > out/target/product/tcc8900/ramdisk.img

make的 j命令(加速Linux程式編譯)

專案越來越大,每次需要重新編譯整個專案都是一件很浪費時間的事情。research了一下,找到以下可以幫助提高速度的方法,總結一下。有人說在windows下用了ramdisk把乙個專案編譯時間從4.5小時減少到了5分鐘,也許這個數字是有點誇張了,不過粗想想,把檔案放到記憶體上做編譯應該是比在磁碟上快多...

編譯android原始碼的make命令解析

摘要 本文描述了編譯android原始碼時,make命令後面隱藏的玄機,通過一步步的分析,你會發現,實際上不是想象的那麼複雜 肯定比編hello world複雜,哈 正文 1.make命令執行後,編譯的入口在 雖然我的最終目的是研究android原始碼之間的關係,但是,當我編完android原始碼後...

make命令 clean命令

先先看一下什麼是makefile makefile定義了一系列的規則來指定,哪些檔案需要先編譯,哪些檔案需要後編譯,哪些檔案需要重新編譯,甚至於進行更複雜的功能操作,因為 makefile就像乙個shell指令碼一樣,其中也可以執行作業系統的命令。makefile帶來的好處就是 自動化編譯 一旦寫好...