当前位置: 首页 > news >正文

解决GLIBC不兼容问题

问题背景

在交叉编译时,报了GLIBC不兼容的问题。我分析产生这个问题的原因是 ,生成库时使用的GLIBC库比当前使用的交叉编译工具链中的GLIBC库更新,导致无法兼容。

解决方案

解决这个问题的方法是下载更新的交叉编译工具链。
比如报错内容显示,库使用的最新的GLIBC库是2.29版本的,那么我们保证下载的交叉编译工具链条中带的GLIBC库是比它更新的。

确定交叉编译工具链的GLIBC版本

查看版本的方法是搜索交叉编译工具链中的libc.so.6库,右键选中它,查看它的属性,会发现它其实是一个链接,链接到其他库。比如我后面下载的交叉编译工具链中带的库的libc.so.6的属性显示,它指向libc-2.33.so,那么它的版本就是2.33。

交叉编译工具链名字解析

工具链的各个字段的含义解释如下:

  • gcc
    这表明该交叉编译工具链的核心编译器是 GNU Compiler Collection(GCC)。GCC 是一套广泛使用的开源编译器,支持多种编程语言,如 C、C++、Fortran 等,在软件开发领域应用非常普遍。
  • arm
    表示该工具链是专门为 ARM 架构处理器设计的。ARM 架构广泛应用于移动设备、嵌入式系统等领域,具有低功耗、高性能等特点。
  • 10.3-2021.07
    这部分体现了 GCC 编译器的版本信息。其中 10.3 是 GCC 的具体版本号,它代表了编译器的功能特性和性能水平;2021.07 表示该版本工具链的发布时间为 2021 年 7 月。不同版本的 GCC 在功能、性能和兼容性上可能会有所差异。
  • x86_64
    指的是该交叉编译工具链所运行的宿主系统架构。x86_64 是一种 64 位的 x86 架构,常见于台式机、笔记本电脑和服务器等设备。这意味着你可以在基于 x86_64 架构的计算机上使用这个工具链进行编译工作。
  • aarch64
    代表目标系统的架构。aarch64 是 64 位的 ARM 架构,表明使用这个工具链编译出来的程序将运行在采用 64 位 ARM 架构的设备上,比如一些高端的嵌入式设备、智能手机等。
  • none
    说明该工具链在设计上不依赖特定的嵌入式操作系统运行时环境。使用此工具链编译的程序可以在裸机环境(即没有操作系统的硬件平台)上运行,不过在这个名称中结合后面的 linux 来看,更多是表示不依赖除 Linux 内核之外的特定嵌入式运行时环境。
  • linux
    表示编译出来的程序将运行在 Linux 操作系统上。这意味着该工具链会针对 Linux 系统的特性和接口进行优化,生成的可执行文件能够与 Linux 内核和系统库进行交互。
  • gnu
    表示该工具链使用 GNU C 库(glibc)。GNU C 库是 Linux 系统中广泛使用的标准 C 库,它提供了丰富的系统调用和函数接口,使得程序能够方便地与 Linux 内核进行交互,实现各种功能。

下载交叉编译工具链

交叉编译工具链可以从两个地方下载,
一个是linaro
linaro提供的工具链下载地址
一个是ARM
ARM提供的工具链下载地址
但是只有ARM提供的工具链比较新,所以我是从ARM官网下载的。
我使用的芯片是Cortex-A55架构的,宿主机是x86架构,ubuntu系统,所以我下载的工具链是 gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz

相关文章:

  • 【递归、搜索与回溯】-- 基本介绍
  • DeepSeek V3-0324升级:开启人机共创新纪元
  • 【含文档+PPT+源码】基于Python校园跑腿管理系统设计与实现
  • Linux cat命令
  • 【从零实现Json-Rpc框架】- 项目实现 - 项目消息类型字段信息定义篇
  • 我的世界1.20.1forge模组开发进阶教程——序列化(1)
  • 蓝桥杯嵌入式十六届模拟三
  • gradle eclipse
  • ROS--IMU数据包
  • 【计算机操作系统】第二章、进程的描述与控制
  • 深入理解K8s与Docker的关系:容器化技术的双雄
  • 内存检查之Valgrind工具
  • 使用vue cli 5.0 在vscode中运行vue命令报错
  • GBase 8s的TRANSLATE() 函数使用说明
  • 端游熊猫脚本游戏精灵助手2025游戏办公脚本工具!游戏脚本软件免费使用
  • MyBatis中mapper.xml 的sql映射规则
  • Linux系统初始化脚本
  • FastAPI 全面指南:功能解析与应用场景实践
  • 基于RK3588平台的OpenCV 4.11快速部署与使用指南
  • Linux 控制台【Console】类型分类
  • 俄需要达成怎样的特别军事行动结果?普京:包含四个方面
  • 天问二号探测器顺利转入发射区,计划5月底择机发射
  • 外企聊营商|上海仲裁:化解跨国企业纠纷的“上海路径”
  • 孟夏韵评《无序的学科》丨误读与重构的文化漂流
  • 特朗普称即将与伊朗达成核协议,外交部:中方愿继续发挥建设性作用
  • 人形机器人灵犀X2掌握新技能:有了“内心戏”,还会拳脚功夫