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

标准库 uClibc

养学
2023-12-01

简介

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

使用

  • 在嵌入式平台,标准库(不管是glibc还是uClibc)的使用,有两种情况。
  1. 环境搭建时生成交叉编译链;交叉编译链是基于标准库的,使用不同标准库(glibc或uClibc)的编译链也是不同的。
  2. 已有交叉编译链,标准库版本更新。
  • 两种情况的使用方法是不同的。

uClibc 版本更新

  • 在已有交叉编译链,标准库版本的更新和普通库的移植差别不大。
  1. 库下载
  • 早期官网:https://www.uclibc.org/;只能下载早期版本,但是有些有用的文档。
  • 新官网:https://uclibc-ng.org/
  • 库下载地址:https://downloads.uclibc-ng.org/releases/
  • 个人使用的版本是:uClibc-ng-1.0.36
  1. 库编译
  • 使用命令make menuconfig进行配置。
  • 第一步,选择系统平台
Target Architecture - 选择arm
  • 第二步,设置交叉编译链头文件路径
Target Architecture Features and Options
--> Linux kernel header
* 注意:这里选择的不是内核头文件,是交叉编译链中的内核相关接口头文件路径,比较容易出错,编译提示头文件找不到,可以去交叉编译链中找到对应路径再设置。
  • 第三步,设置工具链和调试选项
Development/debugging options -->  Cross-compiling toolchain prefix
  • ssc323平台上还进行了以下设置
* Target Architecture Features and Options
--> Build for EABI
* Target Architecture Features and Options
--> Target Processor Endianness
选择对应的大小端
  • 其它配置,看项目需求,一些配置没选择,程序运行时可能会出错
  • 最后编译
make
  • 生成文件在lib目录下。
  • 替换掉平台中使用的版本即可,注意软链接。
 类似资料: