你问的“Ubuntu 上 GCC 为何不兼容”,通常指的是下面几类情况之一。我分场景说明,你看看对应的是哪一种。
Ubuntu 不同版本自带不同 GCC:
问题表现
/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found
原因
-std 标准不同(如 C++11 / C++17)解决
# 查看版本
gcc --version
# 安装指定版本
sudo apt install gcc-11 g++-11
# 切换版本
sudo update-alternatives --config gcc
GCC 本身“兼容”,但链接的 C 库不兼容。
典型错误
version `GLIBC_2.34' not found
原因
解决
Ubuntu 默认是 64 位。
问题
cannot execute binary file: Exec format error
解决
sudo apt install gcc-multilib g++-multilib
gcc -m32 test.c
很多人:
sudo apt remove gcc
然后手动装了一个,结果:
make 找不到✅ 正确做法:并存,不替换系统 GCC
你可以告诉我:
我可以精准告诉你“为什么不相容 + 怎么修”。