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

WSL Ubuntu22.04中GCC13.2.0编译程序运行时缺失GLIBCXX_3.4.32怎么办?

解决GCC 13.2.0编译程序后GLIBCXX_3.4.32找不到的问题

问题原因

你编译安装的GCC 13.2.0自带了新版libstdc++.so.6,但系统运行时默认优先加载/lib/x86_64-linux-gnu下的旧版本库,导致找不到所需的GLIBCXX_3.4.32版本。

解决方法

1. 定位新版libstdc++的位置

先确认编译好的新版库所在路径,执行以下命令:

find /usr/local -name "libstdc++.so.6"

通常路径会是/usr/local/lib64或/usr/local/lib/x86_64-pc-linux-gnu/13.2.0/,记下来这个路径。

2. 临时生效方案(仅当前终端)

把新版库的路径加入LD_LIBRARY_PATH环境变量,替换下面的<你的库路径>为实际找到的路径:

export LD_LIBRARY_PATH=<你的库路径>:$LD_LIBRARY_PATH

之后再运行你的./hello程序即可。

3. 永久生效方案(所有终端)

方式一:修改shell配置文件

编辑你的shell配置文件(比如~/.bashrc,如果用zsh则是~/.zshrc),在末尾添加:

export LD_LIBRARY_PATH=<你的库路径>:$LD_LIBRARY_PATH

保存后执行以下命令让配置生效:

source ~/.bashrc
方式二:更新系统库缓存

创建一个新的库配置文件:

sudo touch /etc/ld.so.conf.d/local-gcc.conf

用编辑器打开并写入你的新版库路径:

sudo nano /etc/ld.so.conf.d/local-gcc.conf

添加内容(替换为实际路径):

<你的库路径>

保存后执行以下命令更新系统库缓存:

sudo ldconfig

4. 编译时直接指定链接路径

编译程序时,通过-Wl,-rpath参数把新版库路径嵌入到程序中,这样运行时无需修改环境变量:

g++ hello.cpp -o hello -Wl,-rpath=<你的库路径>

验证新版库有效性

可以通过以下命令确认新版库包含GLIBCXX_3.4.32:

strings <你的库路径>/libstdc++.so.6 | grep GLIBCXX_3.4.32

如果输出包含该版本号,说明库编译正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 12:11:11