You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Go单元测试报错:找不到CXXABI_1.3.9版本libstdc++.so.6如何解决?

解决方法

这个报错是因为目标机器的libstdc++.so.6版本过低,缺少程序依赖的CXXABI_1.3.9版本。以下是几种可行的解决方式:

方式一:静态编译程序(推荐)

在编译机器上重新编译时,添加静态链接参数,把依赖的库打包进二进制文件,避免依赖目标机器的系统库:

go test -c -run TestChannelReportCsv -ldflags '-linkmode external -extldflags "-static"'

编译生成的mqworker.test可以直接在目标机器运行,无需额外依赖。

方式二:更新目标机器的libstdc++库

如果目标机器有root权限,可以直接更新系统的libstdc++组件:

  • 对于CentOS/RHEL系统:
    sudo yum install -y libstdc++-devel
    
  • 对于Debian/Ubuntu系统:
    sudo apt-get install -y libstdc++6
    

如果系统版本过旧无法通过包管理更新,可以从编译机器上复制高版本的libstdc++.so.6文件到目标机器的/usr/local/lib目录,然后更新软链接:

# 备份原软链接
sudo mv /lib64/libstdc++.so.6 /lib64/libstdc++.so.6.bak
# 创建新软链接(假设复制过来的文件是libstdc++.so.6.0.25)
sudo ln -s /usr/local/lib/libstdc++.so.6.0.25 /lib64/libstdc++.so.6

方式三:临时指定库路径运行

无需修改系统库,临时设置环境变量让程序加载指定目录下的高版本libstdc++:

  1. 从编译机器上复制libstdc++.so.6及对应版本的文件(比如libstdc++.so.6.0.25)到目标机器的某个目录,比如./libstdc++
  2. 执行以下命令运行程序:
export LD_LIBRARY_PATH=./libstdc++:$LD_LIBRARY_PATH
./mqworker.test

内容的提问来源于stack exchange,提问作者zqm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 07:07:14