LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1573|回复: 7

请问编译器C库的大小和嵌入式系统有关系吗?

[复制链接]
发表于 2008-1-10 15:38:02 | 显示全部楼层 |阅读模式
我在学习《ARM嵌入式应用开发技术白金手册》中,书中提到下载的编译好的交叉编译器时用glibc的C库比较庞大,不适合作为小型的嵌入式系统开发使用,建议构造基于C库uClibc的交叉编译器。
请教一下各位,这是为什么。交叉编译器C库的大小对嵌入式目标系统有什么影响?
发表于 2008-1-11 17:14:55 | 显示全部楼层
当然有影响了,用大的库编译出来的文件肯定也会增大,而嵌入式设备的资源都是很宝贵的(与其说是宝贵,不如说是有限),所以小型的嵌入式肯定用uClibc比较好了!
回复 支持 反对

使用道具 举报

发表于 2008-1-11 17:30:22 | 显示全部楼层
也可以看看 http://www.mcuos.com/viewthread. ... tra=page%3D2#pid382
上面也有些介绍(见第二部分buildroot)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-14 13:20:04 | 显示全部楼层
在编译时,应该也只是调用大的C库中的函数,生成的文件应该也只和对应函数大小有关,这与库总体大小应该没什么关系吧?
回复 支持 反对

使用道具 举报

发表于 2008-1-14 16:21:08 | 显示全部楼层
库大小对嵌入式系统的影响有几种情况:
* 库本身的文件大至无法放在文件系统中
* 库的实现复杂, 运行时占用更多的内存资源

很多时候用 uclibc 代替 glibc 主要是因为它运行时占用资源少, 其次也是因为它本身较小, 在动态连接情况下更容易容纳于文件系统中
回复 支持 反对

使用道具 举报

发表于 2008-3-14 12:38:05 | 显示全部楼层
Post by valley4ever;1806953
在编译时,应该也只是调用大的C库中的函数,生成的文件应该也只和对应函数大小有关,这与库总体大小应该没什么关系吧?

正常的libc库比ulibc大很多
尽管函数名字和功能都一样
回复 支持 反对

使用道具 举报

发表于 2008-3-16 17:07:18 | 显示全部楼层
Post by focussoft;1826467
正常的libc库比ulibc大很多
尽管函数名字和功能都一样

既然都一样为什么ulibc没有成为标准的libc
回复 支持 反对

使用道具 举报

发表于 2008-3-20 15:36:16 | 显示全部楼层
Post by valley4ever;1806953
在编译时,应该也只是调用大的C库中的函数,生成的文件应该也只和对应函数大小有关,这与库总体大小应该没什么关系吧?


静态编译是这样的。但大多数时候我们使用动态编译。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表