配置Busybox的选项时,选择静态链接与动态链接的区别

1. 静态链接与动态链接的概念

  • 静态链接是在指编译系统在连接阶段将程序的目标文件与所欲需要的库函数文件链接在一起,这样生成的可执行文件可以在没有函数库的情况下运行。

  • 动态链接是指编译系统在编译阶段没有把目标文件与所需要的库函数文件链接在一起,而是等到程序运行阶段的需要使用时才链接库函数。

2. 静态链接与动态链接的优缺点

  • 静态链接

    优:运行效率高
    缺:生成的可执行文件较大

  • 动态链接

    优:运行效率低
    ​缺:生成的可执行文件较小

3.在配置Busybox的选项时,选择静态链接与动态链接的区别:

  • 在使用静态链接方式即Build BusyBox as a static binary方式进行编译时,所需的库已经与程序静态地链接在一起,这些程序不需要额外的库就可以单独运行,这意味着在构建根文件系统时不需要添加额外的库文件。但是自己编写的程序在文件系统上运行必须采用静态编译,否则会报诸如:bin/sh: hello :not found的错误。如果想要在开发板上使用动态链接方式,把arm-linux-gcc里面的库文件加进去就可以了
  • busybox选择动态编译的话,命令和工具集需要加载lib里面的库,所以在制作根文件系统的时候必须要添加库文件,否则根文件系统无法启动

小结:不管在配置busybox中如何配置链接方式,只要在根文件系统中加入了相应的库函数,都可使用动态链接方式

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值