git clone https://github.com/openwrt/openwrt.git
執行$ ./scripts/feeds update -a$ ./scripts/feeds install -a
make defconfig可檢查所需依賴$sudo yum -y install gcc binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils libncurses5-dev ncurses-term zlib1g-dev wget perl-Thread-Queue openssl-devel zlib-static ncurses-devel gcc-c++$ make prereq$ make menuconfig
通過文本對話框進行選項配置,最主要的配置項有:
Target system(目標系統類型)
Package selection(軟件包選擇)
Build system settings (編譯系統設置)
Kernel modules (內核模塊)
[*]表示:這個包裹選中編譯,並安裝在firmware中;
[M]表示:這個軟件包選中編譯,但並不安裝在firmware中。
在退出Menuconfig的時,會提示是否保存配置。
一般情況,使用一個簡單的命令:
$ make
在多核處理器系統上為提高速度,可使用(例如用3核處理器):
$ make –j 3
在後台進行編譯,使用空閒的I/O資源和CPU性能,可使用(例如使用雙核處理器)
$ onice -c 3 nice -n 20 make -j 2
編譯一個單獨的軟件包(例如在cups軟件包):
$ make package/cups/compile V=99
如果特殊原因需要分析編譯報錯信息:
$ make V=99 2>&1 |tee build.log |grep -i error
說明:將編譯的所有輸出信息保存在build.log中,將error信息打印在屏幕上。
一個復雜指令的應用
$ ionice -c 3 nice -n 20 make -j 2 V=99 CONFIG_DEBUG_SECTION_MISMATCH=y 2>&1 |tee build.log |egrep -i '(warn|error)'
說明:將編譯的所有輸出信息保存在build.log中,將error和warning信息打印在屏幕上。編譯過程使用雙核CPU,占用後台資源。
新生成的鏡像會默認放在新建的一個bin目錄下。
$ ls bin/*
$ make clean
除了清除生成的目錄,還想清除交叉編譯工具(以及工具鏈目錄)
$ make dirclean
清除所有相關的東西,包括下載的軟件包,配置文件,feed內容等:
$ make distclean
http://xxxxxx/Linuxjc/1184812.html TechArticle