Ubuntu 20.04 默认的软件包源中可能不包含 gcc-11 和 g++-11
Ubuntu 20.04 默认的软件包源中可能不包含 gcc-11
和 g++-11
,你需要添加一个 PPA 源来获取更新的 GCC 版本。
解决步骤
1. 添加 GCC PPA 源
运行以下命令添加更新的工具链(toolchain):
bash
复制代码
sudo apt update sudo apt install -y software-properties-common sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update
2. 安装 GCC 和 G++
添加 PPA 源后,安装所需的 GCC 和 G++:
bash
复制代码
sudo apt install -y gcc-11 g++-11
3. 验证安装
检查 GCC 是否成功安装并处于可用状态:
bash
复制代码
gcc --version
如果显示版本 11 或更高,说明安装成功。
4. 切换默认 GCC 版本(可选)
如果系统中安装了多个版本的 GCC,需要手动切换:
bash
复制代码
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 50 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 50
然后选择默认版本:
bash
复制代码
sudo update-alternatives --config gcc sudo update-alternatives --config g++
5. 验证 libstdc++
更新
更新完成后,确保新的 libstdc++
已包含所需的符号:
bash
复制代码
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
如果仍未解决,请尝试手动编译 GCC。
手动编译 GCC(备选方案)
如果 PPA 源不可用,可以手动下载并编译最新的 GCC:
-
下载 GCC 源码:
bash
复制代码
wget http://ftp.gnu.org/gnu/gcc/gcc-11.3.0/gcc-11.3.0.tar.gz tar -xvzf gcc-11.3.0.tar.gz cd gcc-11.3.0
-
安装编译依赖:
bash
复制代码
sudo apt install -y build-essential libgmp-dev libmpc-dev libmpfr-dev texinfo
-
配置和编译:
bash
复制代码
./configure --disable-multilib --enable-languages=c,c++ make -j$(nproc) sudo make install
完成后再次检查:
bash
复制代码
gcc --version
完成上述步骤后,应该能解决 gcc-11
和 libstdc++
的问题。