交叉编译BusyBox

 最近对板子做BSP升级,升级后再降级出现ping 命令会崩溃,所以准备自己编译下busybox放板子上调试看看是哪一行代码崩溃了,下面记录下编译步骤

下载BusyBox源码

进入BusyBox官网,下载源码

下载完成后,将压缩包拷贝到Host机器。我这里下载的是最新版本1.35.0

解压压缩包,进入主目录,执行命令开始配置:

make menuconfig

 显示配置界面:

从Settings->Build Option,配置cross compiler prefix,Path to sysroot , CFLAGS,LDFALGS.

 比如我用的是arm-poky-linux-gnueabi-gcc交叉编译器

调用arm-poky-linux-gnueabi-gcc -v

gateway@eden_ubuntu:~/Eden/busybox-1.35.0$ arm-poky-linux-gnueabi-gcc -v
Using built-in specs.
COLLECT_GCC=arm-poky-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/opt/fsl-imx-fb/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/7.3.0/lto-wrapper
Target: arm-poky-linux-gnueabi
Configured with: ../../../../../../work-shared/gcc-7.3.0-r0/gcc-7.3.0/configure --build=x86_64-linux --host=x86_64-pokysdk-linux --target=arm-poky-linux-gnueabi --prefix=/opt/fsl-imx-fb/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr --exec_prefix=/opt/fsl-imx-fb/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr --bindir=/opt/fsl-imx-fb/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi --sbindir=/opt/fsl-imx-fb/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi --libexecdir=/opt/fsl-imx-fb/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi --datadir=/opt/fsl-imx-fb/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/share --sysconfdir=/opt/fsl-imx-fb/4.14-sumo/sysroots/x86_64-pokysdk-linux/etc --sharedstatedir=/opt/fsl-imx-fb/4.14-sumo/sysroots/x86_64-pokysdk-linux/com --localstatedir=/opt/fsl-imx-fb/4.14-sumo/sysroots/x86_64-pokysdk-linux/var --libdir=/opt/fsl-imx-fb/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/lib/arm-poky-linux-gnueabi --includedir=/opt/fsl-imx-fb/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/include --oldincludedir=/opt/fsl-imx-fb/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/include --infodir=/opt/fsl-imx-fb/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/share/info --mandir=/opt/fsl-imx-fb/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/share/man --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot=/home/eltham/NXP/imx-yocto-bsp/build/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-arm/7.3.0-r0/recipe-sysroot --with-gnu-ld --enable-shared --enable-languages=c,c++ --enable-threads=posix --enable-multilib --enable-c99 --enable-long-long --enable-symvers=gnu --enable-libstdcxx-pch --program-prefix=arm-poky-linux-gnueabi- --without-local-prefix --enable-lto --enable-libssp --enable-libitm --disable-bootstrap --disable-libmudflap --with-system-zlib --with-linker-hash-style=gnu --enable-linker-build-id --with-ppl=no --with-cloog=no --enable-checking=release --enable-cheaders=c_global --without-isl --with-gxx-include-dir=/not/exist/usr/include/c++/7.3.0 --with-build-time-tools=/home/eltham/NXP/imx-yocto-bsp/build/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-arm/7.3.0-r0/recipe-sysroot-native/usr/arm-poky-linux-gnueabi/bin --with-sysroot=/not/exist --with-build-sysroot=/home/eltham/NXP/imx-yocto-bsp/build/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-arm/7.3.0-r0/recipe-sysroot --without-long-double-128 --enable-poison-system-directories --with-mpfr=/home/eltham/NXP/imx-yocto-bsp/build/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-arm/7.3.0-r0/recipe-sysroot --with-mpc=/home/eltham/NXP/imx-yocto-bsp/build/tmp/work/x86_64-nativesdk-pokysdk-linux/gcc-cross-canadian-arm/7.3.0-r0/recipe-sysroot --enable-nls --enable-initfini-array
Thread model: posix
gcc version 7.3.0 (GCC) 

cross compiler prefix填写arm-poky-linux-gnueabi-

sysroot填写/opt/fsl-imx-fb/4.14-sumo/sysroots/cortexa7hf-neon-poky-linux-gnueabi

CFLAGS填写 -mfloat-abi=hard -I /opt/fsl-imx-fb/4.14-sumo/sysroots/cortexa7hf-neon-poky-linux-gnueabi/usr/include.

-mfloat-abi=hard表示浮点处理由专门的硬件处理

配置完后保存配置,调用make命令完成编译

如果编译过程中报错,链接的时候提示:

ld cannot find crt1.o

ld cannot find crti.o:

ld cannot find crtbegin.o:

我认为是LIB查询路径缺失,所以在LDFALGS加入存放这几个.o文件的路径,但是还是不行,

这时我就想ld链接器到底是从哪些路径上查找的,查阅资料说有这条命令:

ld --verbose | grep SEARCH

可以显示链接器查询的路径,将对于的.o文件放入这个路径下也是一种方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值