找回密码
 立即注册
搜索
查看: 403|回复: 0

解决 glibc 库版本不匹配的问题

[复制链接]

266

主题

0

回帖

1119

积分

管理员

积分
1119
发表于 2024-1-23 12:39:50 | 显示全部楼层 |阅读模式

使用高版本的 GCC 编译的程序在低版本 glibc 的机器上运行的时候会提示:

libc.so.6: version 'GLIBC_2.14' not found

之类的错误,这是因为 GCC 所连接的 glibc 版本高于目标系统的 glibc 的版本。查看 libc.so.6 所支持的版本的方法: strings /lib/libc.so.6 | grep GLIBC_

解决这一问题要么升级系统的 libc,要么使程序使用自己的一套 libc 。如果选择后者,需要在连接的时候指定库的优先搜索位置。并且还要指定 ld-linux.so 的位置,否则会提示段错误  Segmentation fault。

QMAKE_LINK += -Wl,-rpath=./lib:/usr/local/bs230/lib -Wl,-dynamic-linker=/usr/local/bs230/lib/ld-linux.so.3

注意:使用相对路径时所相对的是执行者所在的位置(pwd)

比如在 /home 调用 /usr/local/bs230/bsinfo 会在查找 /home/lib 文件夾,而不是 /usr/local/bs230/lib


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|棱讯科技 ( 粤ICP备2024228160号-2|粤公网安备44030002003510号 )

GMT+8, 2024-7-27 13:47 , Processed in 0.013211 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表