什么是交叉編譯,交叉編譯busybox

 2023-11-18 阅读 31 评论 0

摘要:1、下載busybox源碼 什么是交叉編譯,busybox官方地址:https://busybox.net/ 這里示例所下載的版本是 busybox-1.32.0.tar.bz2 2、解壓源碼并進行配置 busybox提供了幾種配置:defconfig(缺省配置)、allyesconfig(最大配置)、allnoconfig(最小配置),一般選

1、下載busybox源碼

什么是交叉編譯,busybox官方地址:https://busybox.net/

這里示例所下載的版本是 busybox-1.32.0.tar.bz2

2、解壓源碼并進行配置

busybox提供了幾種配置:defconfig(缺省配置)、allyesconfig(最大配置)、allnoconfig(最小配置),一般選擇缺省配置即可:

# tar xvf busybox-1.32.0.tar.bz2
# cd busybox-1.32.0/
# make defconfig

完成后,還可輸入make menuconfig以圖形化的方式對配置進行調整,這里不過多說明。

3、添加交叉編譯工具鏈路徑到環境變量

例如我的交叉編譯工具鏈的路徑是:
/home/share/toolchains/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/

那么執行:

# export PATH=$PATH:/home/share/toolchains/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin

4、使用交叉編譯工具進行編譯

例如我的gcc編譯工具名稱是 aarch64-linux-gnu-gcc,則執行:

# make CROSS_COMPILE=aarch64-linux-gnu-

5、編譯完成,檢查文件類型

編譯完成后,在當前文件夾下生成busybox文件,同時保留了未stripped的版本busybox_unstripped;

查看busybox文件信息,為64位小端arm版本:

# file busybox
busybox: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=02e7acdb21accf4ae54855defa47d93a512c7beb, stripped

6、將生成的busybox上傳到板子上測試

可以使用scp、ftp、lrzsz、tftp等命令,能把文件傳到嵌入式設備上就行;

例如使用tftp,PC(IP:10.5.1.86)開啟tftpd程序后,在嵌入式設備獲取busybox文件并添加執行權限:

# tftp -g -r busybox 10.5.1.86
# chmod +x busybox

busybox有三種使用方式:

一是執行busybox后面緊跟對應命令,例如:

# ./busybox pwd
/tmp

二是拷貝busybox成命令名稱,直接執行,例如:

# cp busybox pwd
# ./pwd
/tmp

三是創建到busybox的軟連接(推薦),例如:

# ln -s busybox pwd
# ./pwd
/tmp

7、查看busybox用法及支持命令列表

# ./busybox --help

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/178436.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息