5、嵌入式开发中的库与交叉编译技术详解

嵌入式开发中的库与交叉编译技术详解

1. 静态库

静态链接在某些情况下非常有用。例如,当构建一个仅由BusyBox和一些脚本文件组成的小型系统时,静态链接BusyBox可以避免复制运行时库文件和链接器,使操作更简单。而且,由于只链接应用程序使用的代码,而不是整个C库,生成的文件也会更小。此外,当需要在包含运行时库的文件系统可用之前运行程序时,静态链接也很有帮助。

要进行静态链接,只需在命令行中添加 -static 选项,示例如下:

$ arm-cortex_a8-linux-gnueabihf-gcc -static helloworld.c -o helloworld-static

执行后,你会发现生成的二进制文件大小显著增加:

$ ls -l
-rwxrwxr-x 1 chris chris 5884 Mar 5 09:56 helloworld
-rwxrwxr-x 1 chris chris 614692 Mar 5 10:27 helloworld-static 

静态链接从库存档文件中提取代码,通常这些存档文件名为 lib[name].a 。例如,上述示例中使用的是 libc.a ,它位于 [sysroot]/usr/lib 目录下:

$ export SYSROO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值