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

手动编译GCC 13.0运行触发Segmentation fault问题求助

解决GCC 13编译程序运行时链接旧版libstdc++的问题
  • 定位GCC 13的库路径
    找到手动编译的GCC 13配套libstdc++.so所在目录,比如若在$HOME/gcc-13.0.0下编译安装,路径大概率是$HOME/gcc-13.0.0/lib64。用以下命令快速查找:
find $HOME -name "libstdc++.so.6" | grep gcc-13
  • 编译时显式指定链接库路径(推荐长期方案)
    别仅依赖alias调用GCC 13,编译时要让链接器明确使用新版库,最靠谱的方法是加-Wl,-rpath参数,把GCC13的库路径嵌进程序:
g++-13 -g -O0 your_program.cpp -o your_program -Wl,-rpath=$HOME/gcc-13.0.0/lib64

或者直接调用GCC13编译器的完整路径,它会自动关联自己的库文件:

$HOME/gcc-13.0.0/bin/g++ -g -O0 your_program.cpp -o your_program
  • 临时测试用:设置LD_LIBRARY_PATH
    如果只是临时验证程序能否正常运行,可在运行前临时修改环境变量,让系统优先加载新版库:
export LD_LIBRARY_PATH=$HOME/gcc-13.0.0/lib64:$LD_LIBRARY_PATH
./your_program

注意这个设置仅在当前终端会话有效,关闭终端后失效,不适合长期使用。

  • 验证链接结果
    编译完成后,用ldd检查程序依赖的库是否正确:
ldd your_program | grep libstdc++

输出若指向你GCC13目录下的libstdc++.so,说明链接成功;要是仍显示系统默认的/lib/x86_64-linux-gnu/libstdc++.so.6,回头检查编译参数是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:32:14