服务器更新后出现 open libtier0.so (/lib/libstdc++.so.6: version `CXXABI_1.3.8' not found (required ...libtier0.so))错误 教学

我不当学长 管理员组 2023-2-4 1715

背景:

  • 我是用的服务器是centos7

解决方法:

运行

strings /usr/lib/libstdc++.so.6|grep CXXABI

查看支持的版本里面是否包含 CXXABI_1.3.8

如果不包含,那么需要重新找一个包含 CXXABI_1.3.8 的 libstdc++.so.6 去替换原来的软连接(要注意,这里的libstdc++.so.6仅仅只是一个软连接,就类似windows平台的快捷方式)

需要更新glibc版本(最低必须是glibc 2.18版本),要求是支持 CXXABI_1.3.8 的,

更新glibc方法如下:(使用root账户操作)

# 下载并解压 glibc-2.18
$ wget https://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
$ tar -xzvf glibc-2.18.tar.gz
$ cd glibc-2.18
# 创建临时文件
$ mkdir build && cd build
$ ../configure --prefix=/usr CC="gcc -m32" CXX="g++ -m32" CFLAGS="-O2 -march=i686" CXXFLAGS="-O2 -march=i686" i686-linux-gnu
# 编译安装
$ make
$ make install

#参考:https://cloud.tencent.com/developer/article/2021784
#https://stackoverflow.com/questions/8004241/how-to-compile-glibc-32bit-on-an-x86-64-machine

如果出现报错:

/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or direct

请执行以下命令:

各平台的解决办法:
Debian Linux:
$ sudo apt-get install libc6-dev

Ubuntu Linux:
$ sudo apt-get install libc6-dev-i386

OpenSUSE / Novell Suse Linux (SLES):
# zypper in glibc-devel-32bit

RHEL / Fedora / CentOS / Scientific Linux:
$ sudo yum install glibc-devel.i686
————————————————
版权声明:本文为CSDN博主「九遍斋」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wang_xijue/article/details/47128423

安装成功会有类似下面的信息

要注意检查一下libstdc++.so.6这个软链接是否指向了最新编译出来的libstdc++.so.6.0.20。

此时已经成功看到有CXABI_1.3.8包含了。

运行csgo服务器,发现已经可以正常启动了。

下载地址:

 https://cowtransfer.com/s/2b3d2ca80e2943 点击链接查看 [ glibc-2.18.tar.gz ] ,或访问奶牛快传 cowtransfer.com 输入传输口令 pa9bxa 查看;

 https://cowtransfer.com/s/0ae94a4c95a345 点击链接查看 [ libc和libstd文件.zip ] ,或访问奶牛快传 cowtransfer.com 输入传输口令 vjrulx 查看;


CSGO插件分享-申明 1、本网站名称:CSGO插件分享-中文站  网址:https://bbs.csgocn.net
2、本站的宗旨在于为CSGO玩家提供一个插件分享的中文资源平台,多数插件来源于SourceMod论坛,并配以中文介绍和安装教程。
3、欢迎有能力的朋友共享有趣的CSGO插件资源。
4、本站资源大多为百度网盘,如发现链接失效,可以点: 这里进行反馈,我们会第一时间更新。
最新回复 (20)
  • AEISet 三级用户组@Ta 2023-2-4 1
    引用 2
    如果是debian11,则需要运行strings  /usr/lib32/libstdc++.so.6|grep  CXXABI来进行检查
  • 我不当学长 楼主 管理员组@Ta 2023-2-4 0
    引用 3
    更新:可能还会出现其他的依赖,如果出问题,请回帖说明,我尽量提供。我正在手动源码编译glibc2.18
  • huyidao 一级用户组@Ta 2023-2-4 0
    引用 4
    Failed  to  open  libtier0.so  (libstdc++.so.6:  wrong  ELF  class:  ELFCLASS64)
  • ylzzt 一级用户组@Ta 2023-2-4 0
    引用 5
    Failed  to  open  libtier0.so  (/lib/libc.so.6:  version  `GLIBC_2.18'  not  found  (required  by  /lib/libstdc++.so.6))
  • 我不当学长 楼主 管理员组@Ta 2023-2-4 0
    引用 6
    huyidao Failed to open libtier0.so (libstdc++.so.6: wrong ELF class: ELFCLASS64)

    这个是连环依赖,是已知问题。我在手动编译源码,成功了会发出来

  • 我不当学长 楼主 管理员组@Ta 2023-2-4 0
    引用 7
    ylzzt Failed to open libtier0.so (/lib/libc.so.6: version `GLIBC_2.18' not found (required by /lib/libstdc ...
    本文已更新,可以通过编译glibc  2.18源码,手动升级,解决csgo服务器开启的问题。
  • 我不当学长 楼主 管理员组@Ta 2023-2-4 0
    引用 8
    huyidao Failed to open libtier0.so (libstdc++.so.6: wrong ELF class: ELFCLASS64)
    本文已更新,可以根据教学更新glibc  2.18以解决问题
  • huyidao 一级用户组@Ta 2023-2-4 0
    引用 9
    我不当学长 本文已更新,可以根据教学更新glibc 2.18以解决问题
    为什么我按照教学安装完了还是显示Failed    to    open    libtier0.so    (libstdc++.so.6:    wrong    ELF    class:    ELFCLASS64)
  • 我不当学长 楼主 管理员组@Ta 2023-2-4 0
    引用 10
    huyidao 为什么我按照教学安装完了还是显示Failed to open libtier0.so (libstdc++.so.6: wrong ELF class: ELFCLASS64)
    你使用的libstdc++.so.6  是64位版本。csgo需要32位。根据教程重新做一遍
  • huyidao 一级用户组@Ta 2023-2-4 0
    引用 11
    我不当学长 你使用的libstdc++.so.6 是64位版本。csgo需要32位。根据教程重新做一遍
    你好像把之前重定义软连接的那一部分删掉了。
  • 我不当学长 楼主 管理员组@Ta 2023-2-5 0
    引用 12
    huyidao 你好像把之前重定义软连接的那一部分删掉了。

    我明天传一份32位的libstdc++.so.6出来

    20230225更新-可以试试这个: 

    https://cowtransfer.com/s/0ae94a4c95a345 点击链接查看 [ libc和libstd文件.zip ] ,或访问奶牛快传 cowtransfer.com 输入传输口令 vjrulx 查看;

  • ylzzt 一级用户组@Ta 2023-2-5 0
    引用 13
    安装成功了,但是strings  /usr/lib/libstdc++.so.6|grep  CXXABI显示还是没有CXXABI_1.3.8
  • 我不当学长 楼主 管理员组@Ta 2023-2-5 0
    引用 14
    ylzzt 安装成功了,但是strings /usr/lib/libstdc++.so.6|grep CXXABI显示还是没有CXXABI_1.3.8

    源码编译的吗?是不是路径不对

  • 我不当学长 楼主 管理员组@Ta 2023-2-5 0
    引用 15
    ylzzt 安装成功了,但是strings /usr/lib/libstdc++.so.6|grep CXXABI显示还是没有CXXABI_1.3.8
    软连接志向的路径不对?
  • huyidao 一级用户组@Ta 2023-2-5 0
    引用 16
    我替换完文件直接./srcds_linux:  relocation  error:  /lib/libpthread.so.0:  symbol  __h_errno,  version  GLIBC_PRIVATE  not  defined  in  file  libc.so.6  with  link  time  reference
  • 天圣kymaNdu 一级用户组@Ta 2023-2-6 0
    引用 17
    huyidao 我替换完文件直接./srcds_linux: relocation error: /lib/libpthread.so.0: symbol __h_errno, version GLIBC_PRIVA ...
    glibc安装出错,重新安装下,注意安装成功的提示
  • 胖胖小猪脚 二级用户组@Ta 2023-2-6 0
    引用 18
    (=゚ω゚)ノ
  • 24 一级用户组@Ta 2023-2-6 0
    引用 19
    麻了刚换到windows就出修复教程了呜呜呜呜呜呜呜呜呜呜哇哇呜呜呜呜呜呜呜呜呜呜哇哇我刚出错的时候咋搜也搜不到教程呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜呜
  • useduudm 二级用户组@Ta 2023-2-7 0
    引用 20
    [S_API]  SteamAPI_Init():  SteamAPI_IsSteamRunning()  did  not  locate  a  running  instance  of  Steam.
    [S_API]  SteamAPI_Init():  Loaded  '/home/newcsgo/.steam/sdk32/steamclient.so'  OK.
    [S_API  FAIL]  SteamAPI_Init()  failed;  create  pipe  failed.No  web  api  auth  key  specified  -  workshop  downloads  will  be  disabled.
      failed  to  dlopen  /home/newcsgo/serverfiles/csgo/addons/metamod/bin/linux64/server.so  error=/home/newcsgo/serverfiles/csgo/addons/metamod/bin/linux64/server.so:  wrong  ELF  class:  ELFCLASS64
    Unable  to  load  plugin  "addons/metamod/bin/linux64/server"

    提示这些怎么办
  • 我不当学长 楼主 管理员组@Ta 2023-2-7 0
    引用 21
    useduudm [S_API] SteamAPI_Init(): SteamAPI_IsSteamRunning() did not locate a running instance of Steam. [S_A ...
    so库文件32位与64位不兼容。把metamod/bin/linux/server.so替换到metamod/bin/linux64目录下面就行。
返回