【问题标题】:use different glibc version使用不同的 glibc 版本
【发布时间】:2012-06-01 05:54:40
【问题描述】:

目前我有不支持 epoll 的 glibc,所以我在支持 epoll 的非默认版本中安装了新的 glibc。我有使用这个 epoll 的 python 程序。

我尝试设置 LD_LIBRARY_PATH

export LD_LIBRARY_PATH="/home/glibc/lib:$LD_LIBRARY_PATH"

然后我运行 ls,它给了我错误

ls: /home/glibc/lib/tls/libc.so.6: version 'GLIBC_2.4' not found (required by /lib/libpam.so.0)

ls: /home/glibc/lib/tls/libc.so.6: version 'GLIBC_2.4' not found (required by /lib/libpam_misc.so.0)

当我尝试运行 python 时,我得到了

python: relocation error: /home/glibc/lib/tls/libc.so.6: symbol _dl_out_of_memory, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference

如何使用新安装的 glibc 而不是默认的?

【问题讨论】:

标签: python glibc epoll


【解决方案1】:

您需要使用动态链接器的显式调用,因此如下所示:

/home/glibc/lib/ld-linux-x86-64.so.2 --library-path /home/glibc/lib /usr/bin/python

(但GLIBC_2.4 符号版本不可用的事实表明新的 glibc 存在严重问题,或者实际上根本不是什么新的,早于 glibc 2.4。)

【讨论】:

    【解决方案2】:

    如果您自己编译 glibc,您的构建目录中应该有 testrun.sh 脚本。这比使用 ld-linux.so 更简单可靠:

    build/testrun.sh ls
    

    【讨论】:

      猜你喜欢
      • 2013-04-03
      • 2014-12-23
      • 1970-01-01
      • 2020-12-07
      • 2012-06-21
      • 2018-07-21
      • 2019-08-06
      • 2020-10-12
      • 1970-01-01
      相关资源
      最近更新 更多