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

升级GCC至13.1后编译程序成功但运行出现Segmentation Fault求助

问题解决:GCC13.1.0编译程序运行段错误

问题原因

你用GCC13.1.0编译的程序,运行时加载了系统旧版本的libstdc++.so.6(对应之前的GCC11.3.0),新编译器生成的代码与旧标准库内部结构不兼容,导致段错误。从ldd输出能看到程序依赖的是/lib/x86_64-linux-gnu/libstdc++.so.6,而非GCC13.1.0自带的配套库。

解决方法

方法1:临时指定库路径运行

先找到GCC13.1.0自带的libstdc++.so.6路径,通常在/usr/local/lib64或/usr/local/lib/x86_64-pc-linux-gnu/13.1.0/下,找不到的话用命令定位:

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

找到路径后,运行程序时通过环境变量指定加载该库:

LD_LIBRARY_PATH=你的GCC13库路径 ./main

方法2:永久配置库路径

  1. 创建GCC13库路径的配置文件:
echo "/usr/local/lib64" | sudo tee /etc/ld.so.conf.d/gcc13.conf

(如果你的库路径不是/usr/local/lib64,替换成实际路径)
2. 更新系统动态链接缓存:

sudo ldconfig

之后运行程序会自动优先加载GCC13的标准库。

方法3:编译时静态链接标准库

编译时添加-static-libstdc++参数,将GCC13的libstdc++静态嵌入程序,彻底避免依赖系统库:

g++ main.cpp -std=c++20 -o main -static-libstdc++

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 18:53:22