运行程序报错:Inconsistency detected by ld.so: dl-call-libc-early-init.c: 37: _dl_call_libc_early_init:

问题分析

开发环境

1)系统18.04.6 LTS

2)内核为4.15.0-22-generic 版本

3)GLIBC版本为2.27

生产环境

1)系统:22.04.3 LTS

2)内核版本为:6.5.0-28-genneric

3)GLIBC版本 2.35

看网上一些说法是需要生产环境升级GLIBC,生产环境的GLIBC已经比开发环境GLIBC版本高,而且开发环境的内核版本也比生产环境的低。按照低版本内核编译的程序可以在高版本内核上运行,但未什么还会报错。

后来发现我在打包动态库是将低版本平台相关的动态库也打包了,这样就会报错

解决办法

去掉系统相关动态库,如下:

libpthread.so.0
librt.so.1
libc.so.6
libdl.so.2
libgcc_s.so.1

posted @ 2024-04-29 13:59  焦涛  阅读(1228)  评论(0)    收藏  举报