1. 程式人生 > >buildroot 常用編譯命令(前八章)

buildroot 常用編譯命令(前八章)

轉載地址:https://blog.csdn.net/qq_39101111/article/details/78683742

BusyBox的
如果您已經有BusyBox配置檔案,則可以直接在Buildroot配置中使用指定該檔案 BR2_PACKAGE_BUSYBOX_CONFIG。否則,Buildroot將從預設的BusyBox配置檔案開始。

要對配置進行後續更改,請使用make busybox-menuconfig開啟BusyBox配置編輯器。

也可以通過環境變數指定一個BusyBox配置檔案,儘管這不是建議的。有關更多詳細資訊,請參閱 第8.6節“環境變數”。

uClibc的uClibc的配置與BusyBox相同。用於指定現有配置檔案的配置變數是 BR2_UCLIBC_CONFIG。後續更改的命令是make uclibc-menuconfig。Linux核心
如果你已經有一個核心配置檔案,你可以直接在Buildroot配置檔案中使用 變數BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG。

如果您還沒有核心配置檔案,您可以通過在Buildroot配置中指定defconfig來BR2_LINUX_KERNEL_USE_DEFCONFIG啟動,使用 或者建立一個空檔案並將其指定為自定義配置檔案變數 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG。

要對配置進行後續更改,請使用make linux-menuconfig開啟Linux配置編輯器。

BareboxBarebox的配置與Linux核心的配置相同。相應的配置變數是 BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG和 BR2_TARGET_BAREBOX_USE_DEFCONFIG。要開啟配置編輯器,請使用make barebox-menuconfig。的U-Boot
U-Boot(版本2015.04或更新版本)的配置以與Linux核心相同的方式完成。相應的配置變數是BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG和 BR2_TARGET_UBOOT_USE_DEFCONFIG。要開啟配置編輯器,請使用make uboot-menuconfig。


並非所有的目標都是可用的,.config檔案中的一些設定可能會隱藏一些目標:

busybox-menuconfig僅在busybox啟用(選中)時才起作用;
linux-menuconfig而linux-savedefconfig只有當工作 linux啟動(選中);
uclibc-menuconfig 只有在內部工具鏈後端選擇了uCl​​ibc C庫時才可用;
barebox-menuconfig而barebox-savedefconfig只有當工作 barebox啟動載入程式。
uboot-menuconfig而uboot-savedefconfig只有當工作 U-Boot啟動載入程式。
完全重建單個包的最簡單的方法是在中刪除其構建目錄output/build。然後Buildroot將重新提取,重新配置,重新編譯和重新安裝這個包。使用 make <package>-dirclean命令,之後使用make <package>命令
從編譯步驟重新開始編譯包的構建過程,則可以執行make <package>-rebuild,然後按make或make <package>。它將重新開始編譯和安裝軟體包,但不是從頭開始:它基本上是重新執行的,make(搜尋很麻煩)而且make install 在軟體包內部,所以它只會重建那些已經改變檔案。

從配置步驟重新啟動程式包的構建過程,可以執行make <package>-reconfigure,然後按make或make <package>。它將重新啟動軟體包的配置,編譯和安裝。


make graph-depends    生成已編譯完整系統的依賴關係圖   
output/graphs/graph-depends.pdf
make <pkg>-graph-depends 給定的包生成依賴關係圖      
output/graph/<pkg>-graph-depends.pdf
軟體的構建過程(按它們執行的順序):make+

命令/目標    描述(這些命令都是單步執行)
make source

獲取原始碼(下載壓縮包,克隆原始碼庫等)      下載原始碼

make depends

構建並安裝構建軟體包所需的所有依賴關係            檢查依賴關係

extract

把原始碼放在包構建目錄中(提取壓縮包,複製原始碼等)    解壓原始碼包

patch

應用補丁,如果有的話                                                                     新增補丁

configure

執行configure命令(如果有的話)                                                進行軟體的配置

build

執行編譯命令                                                                                    進行軟體的編譯

install-staging

目標軟體包:如果需要,在分段目錄中執行軟體包的安裝

install-target

目標軟體包:如果需要,請在目標目錄中執行軟體包的安裝

install

目標包:執行2個以前的安裝命令                                                        進行軟體的安裝

主機包:在主機目錄中執行包的安裝

另外,還有其他一些有用的目標:

命令/目標    描述(這些命令都是單步執行)
show-depends

顯示構建包所需的依賴關係

graph-depends

在當前的Buildroot配置的上下文中生成包的依賴關係圖。有關依賴關係圖的更多詳細資訊,請參見 本節的 第8.8節“繪製包之間的依賴關係”。

dirclean

刪除整個包構建目錄

reinstall

重新執行安裝命令

rebuild

重新執行編譯命令 - 這隻有在使用該OVERRIDE_SRCDIR功能(重新指定原始碼包位置)時才有意義,或者直接在編譯目錄中修改檔案時才有意義

reconfigure

重新執行configure命令,然後重建 - 這隻有在使用該OVERRIDE_SRCDIR功能時才有意義,或者直接在build目錄中修改檔案


Buildroot的正常執行是下載一個tarball,解壓縮,打補丁,配置,編譯和安裝

命令 (重新指定哪個軟體包的原始碼位置)
<pkg1> _OVERRIDE_SRCDIR = / path / to / pkg1 / sources
<pkg2> _OVERRIDE_SRCDIR = / path / to / pkg2 / sources
例如:

LINUX_OVERRIDE_SRCDIR = / home / bob / linux /
BUSYBOX_OVERRIDE_SRCDIR = / home / bob / busybox /
然後執行 
make linux-rebuild all
make busybox-rebuild all


make <pkg>-rebuild all命令將原始碼 <pkg>_OVERRIDE_SRCDIR複製到output/build/<package>-custom(僅修改過的檔案被複制),並重新啟動只是這個包的構建過程(包括 make rebuild 和make install)。


當Buildroot發現對於一個給定的包時,<pkg>_OVERRIDE_SRCDIR已經定義了一個包, 它將不再嘗試下載,提取和修補包。它將直接使用指定目錄中的可用原始碼,而make clean不會觸及此目錄。
--------------------- 
作者:scw_zch 
來源:CSDN 
原文:https://blog.csdn.net/qq_39101111/article/details/78683742 
版權宣告:本文為博主原創文章,轉載請附上博文連結!