运行程序报错: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
浙公网安备 33010602011771号