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 只有在內部工具鏈後端選擇了uClibc 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
版權宣告:本文為博主原創文章,轉載請附上博文連結!