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

如何让自定义编译的GCC 14默认使用自身的libstdc++?

解决GCC 14自动使用自身libstdc++的方法

以下几种方法可以让GCC 14编译时默认使用自身的libstdc++库,无需每次手动指定路径:

方法1:修改GCC启动脚本(精准生效,推荐)

该方法仅针对GCC 14的调用生效,不会影响系统其他编译器或程序:

  1. 重命名原GCC 14可执行文件:
sudo mv /usr/local/gcc-14.1.0/bin/gcc-14.1.0 /usr/local/gcc-14.1.0/bin/gcc-14.1.0.real
sudo mv /usr/local/gcc-14.1.0/bin/g++-14.1.0 /usr/local/gcc-14.1.0/bin/g++-14.1.0.real
  1. 创建gcc-14.1.0的wrapper脚本:
sudo nano /usr/local/gcc-14.1.0/bin/gcc-14.1.0

写入以下内容:

#!/bin/bash
exec /usr/local/gcc-14.1.0/bin/gcc-14.1.0.real -L/usr/local/gcc-14.1.0/lib64 "$@"
  1. 同样创建g++-14.1.0的wrapper脚本:
sudo nano /usr/local/gcc-14.1.0/bin/g++-14.1.0

写入以下内容:

#!/bin/bash
exec /usr/local/gcc-14.1.0/bin/g++-14.1.0.real -L/usr/local/gcc-14.1.0/lib64 "$@"
  1. 给脚本添加执行权限:
sudo chmod +x /usr/local/gcc-14.1.0/bin/gcc-14.1.0
sudo chmod +x /usr/local/gcc-14.1.0/bin/g++-14.1.0

之后调用gcc(已通过alternatives切换到14版本)编译代码时,会自动添加-L参数指向GCC 14的库路径,优先链接自身的libstdc++。

方法2:更新系统库缓存(全局生效)

将GCC 14的库路径加入系统全局库搜索路径,所有程序都会优先使用该库(注意:可能导致依赖旧版libstdc++的程序运行异常):

  1. 创建库路径配置文件:
sudo nano /etc/ld.so.conf.d/gcc-14.conf

写入路径:

/usr/local/gcc-14.1.0/lib64
  1. 更新系统库缓存:
sudo ldconfig

验证是否生效:执行ldconfig -p | grep libstdc++.so.6,查看输出中是否有GCC 14的路径排在前面。

方法3:设置用户级环境变量(仅当前用户生效)

在用户的shell配置文件中添加环境变量,编译和运行时优先使用GCC 14的库:

  1. 编辑~/.bashrc(如果使用zsh则编辑~/.zshrc):
nano ~/.bashrc
  1. 在末尾添加:
export LIBRARY_PATH=/usr/local/gcc-14.1.0/lib64:$LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/gcc-14.1.0/lib64:$LD_LIBRARY_PATH
  1. 使配置生效:
source ~/.bashrc

该方法仅对当前用户生效,适合个人开发环境,不会影响系统其他用户或全局程序。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 14:05:19