当前位置: 首页 > 工具软件 > uClibc > 使用案例 >

uClibc(轻量级C库)

陈茂
2023-12-01

参考网址:http://www.uclibc.org/

 

GNU的Glibc是一个非常宠大而完整的库,至少对于嵌入式系统来说,其体积显得过于大了一些。uClibc的提出较好的解决了这样一个问题。uClibc尽可能的兼容Glibc,大多数应用程序可以在很小或完全不修改的情况下就可能使用uClibc替代glibc。通过uClibc来代替Glibc,可以在不改变应用程序功能的前提下,大大减少发布文件的大小,无论应用程序以静态链接来编译,还是以动态链接形式编译。 

 

不过使用uClibc代替并不是简单的设置一两个参数就行了,通常需要使用一个不同的工具集(gcc/binutils等)来编译源代码。手工的构造这样一个环境,对于大多数普通程序员来说,不一定是一件很简单的事情,因此,uClibc的开发者创造出一个叫做buildroot的工具集。buildroot将自动构造编译基于uClibc代码的工具集和uClibc库,并提供一个可配置的框架和一些构建一个基本系统的配置文件。用户只需要通过配置菜单选择了相应的目标软件,buildroot就可以从构建基本工具集开始,一直到最后构建出目标系统所需要的东西,如嵌入式系统常用的基于ext2的initrd,jffs根文件系统,压缩的根目录树等,这些代码都是基于uClibc而不是系统的Glibc的。

 

Buildroot对主机系统的要求较小,通常只需要主机系统提供足以构建工具链(toolchain)的工具,如gcc/binutils等,当工具链编译完成后,对目标系统需要的源码的编译过程与主机系统的开发工具集基本上就没有什么关系了。因此,不同的主机如果能够通过第一步,编译完成工具链,那么编译出来的目标系统的执行代码就可以几乎不存在由于系统引起的差异。这样,开发人员就可能在各自喜欢的Linux发行版上进行开发,而不必担心出现什么兼容性问题。 

 

uClibc和Glibc也有许多不同之处:

http://www.uclibc.org/downloads/Glibc_vs_uClibc_Differences.txt

 类似资料: