首页 > 其他分享 >libm.so.6: version `GLIBC_2.29' not found

libm.so.6: version `GLIBC_2.29' not found

时间:2024-01-23 16:01:35浏览次数:29  
标签:libm 编译 -- GLIBC headers 2.29 usr include glibc

基础

GLIBC是Linux系统中最底层的API,最主要的功能是对系统调用进行了封装,几乎其他任何的运行库都要依赖glibc。因此,切勿擅自通过编译的方式升级,容易将系统搞坏。

升级glibc主要是对/lib库中的libc.so.6,libm.so.6, libpthread.so.0和librt.so.1这四个文件的修改

[root@taishan-atlas ~]# rpm -qa | grep glibc

glibc-common-2.17-317.el7.aarch64

glibc-2.17-317.el7.aarch64

glibc-headers-2.17-317.el7.aarch64

glibc-devel-2.17-317.el7.aarch64


注:gcc低版本和glibc 2.28不兼容

当前采用gcc version 8.3.1 20190311编译glibc2.28和glibc2.29


编译安装

编译安装进入glibc-2.27目录中

wget  https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz --no-check-certificate

tar -xvf  glibc-2.28.tar.gz

cd glibc-2.28

mkdir build

cd build

执行./configure

../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

安装

make && make install


测试

查看自带默认的glibc

strings /home/glibc/glibcout/lib/libm.so.6 | grep GLIBC


问题

LD_LIBRARY_PATH shouldn't contain the current directory when  building glibc

解决方案

export LD_LIBRARY_PATH=


configure: error: GNU libc requires kernel header files from Linux 3.2.0 or later to be installed before configuring.

The kernel header files are found usually in /usr/include/asm and

/usr/include/linux; make sure these directories use files from

Linux 3.2.0 or later.  This check uses <linux/version.h>, so

make sure that file was built correctly when installing the kernel header

files.  To use kernel headers not from /usr/include/linux, use the

configure option --with-headers.


解决方案

配置glibc编译选项,添加--with-headers=/usr/include --with-binutils=/usr/bin


Illegal instruction (core dumped)

进入到编译输出路径,无法执行任何执行

cd /home/dong/glibc/release/lib

解决方案

export LD_LIBRARY_PATH=

标签:libm,编译,--,GLIBC,headers,2.29,usr,include,glibc
From: https://blog.51cto.com/fengyuzaitu/9380732

相关文章

  • 【glibc】glib 简介
    编译  编译  简介 glib可调试/configureCFLAGS=-g&&make&&makeinstallormakeCFLAGS=-g 简介原文地址: http://laiyuanyuan7.blog.163.com/blog/static/1527432120112104428767/glib库是Linux平台下最常用的C语言函数库,它具有很好的可移植性和实......
  • 【glibc】glib库单向链表GSList介绍
    glib库单向链表介绍glib库里实现了一些基本的数据结构,比如单向链表,双向链表、队列、树、hash表和数组。这篇文章里我主要介绍在linux平台下使用glib库中的单向链表进行编程,以后的文章我会陆续介绍双向链表、队列和其它数据结构的用法。单向链表(即GSList)是glib库里最简单的容具,它......
  • 【glibc】glib 数组
    编译:gcc-g-Wall-O0fuck.c-ofuck`pkg-config--libs--cflagsglib-2.0`1基本操作这里是向数组添加和删除数据的一些主要方法:#include<glib.h>#include<stdio.h>intmain(intargc,char**argv){GArray*a=g_array_new(FALSE,FALSE,sizeof(char*));......
  • 【glibc】glib库双向链表GList介绍
    在上一篇文章里我介绍了glib库中单向链表的用法,这篇文章介绍glib库双向链表的用法,还是沿用上一篇文章的风格,采用在代码中加入注释来说明代码,最后贴出程序的运行结果,然后加以少量说明。双向链表与单向链表的区别是,从一个节点,不仅能访问到它的下一个节点,还能访问到它的上一个节点,其......
  • 【glibc】glib库数组GArray介绍
    glib库中的数组GArray类型很像C++标准容器库中的vector容器。要使用glib库中的数组中需要声明一个指向GArray类型的指针。GArray的定义如下:structGArray{gchar*data;guintlen;};然后就可以在这个数组前或者数组后添加数据,添加数据的时候数组也会像C++中的vector容器......
  • 【glibc】glib库hash表GHashTable介绍
    hash表是一种提供key-value访问的数据结构,通过指定的key值可以快速的访问到与它相关联的value值。hash表的一种典型用法就是字典,通过单词的首字母能够快速的找到单词。关于hash表的详细介绍请查阅数据结构的相关书籍,我这里只介绍glib库中hash表的基本用法。要使用一个hash表首先必......
  • 【glibc】glib库队列GQueue介绍
    队列是一种向最后添加条目,从最前删除条目的数据结构,这种数据结构在处理按顺序到达的数据是很有用。glib库提供的队列GQueue是一个双端队列,它的实现基础是双向链表,所以它支持在队列的两端进行添加和删除,也支持很多其它的操作,比如在队列中进行插入和删除,但是我不推荐使用这样的功能......
  • /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found问题解决
    有一个go实现的项目代码最近有更新,自己在开发环境上手动构建并运行都没有问题(构建和运行时相同环境,肯定没有问题^_^)。后面通过jenkins构建镜像也没有问题,运行时却报错 之前的版本在jenkins上构建也是成功的,后沟通得知jenkins集群版本最近有更新 那么,大概知道原因了,由于jenk......
  • modbus开源库 libmodbus
    近期用到了modbus,搜到了libmodbus开源库,记录一下。网上关于如何编译的文章很多,不再赘述。借鉴:https://blog.csdn.net/qq_38158479/article/details/120928043说明:本文代码改造为适于windows的qt。为了多线程业务处理,类继承QObject,这里作为服务器(子站)。代码和例子位于文末。例子......
  • GLIBC修复笔记
    微信公众号:运维开发故事作者:wanger背景公司环境有台机器硬盘故障,需要安装megacli工具进系统查看raid信息,在ubuntu20.04安装megacli解决依赖过程中失误将高版本的libtinfo包装系统上了,导致系统报glibc对应的版本没有找到,系统实际glibc的版本是2.31。解决办法如果系统的ssh没有断开,可......