你的问题比较宽泛——“Ubuntu 上 GCC 不兼容库”可能指多种情况。下面我按常见原因 + 对应场景来解释,方便你对照自己的问题。
undefined reference to `xxx@GLIBC_2.34`
libstdc++ 旧 ABI_GLIBCXX_USE_CXX11_ABI=1)# 查看库依赖
ldd your_program
# 查看符号版本
objdump -T libxxx.so | grep GLIBC
# C++ ABI 兼容编译
g++ -D_GLIBCXX_USE_CXX11_ABI=0 main.cpp
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found
wrong ELF class: ELFCLASS32
# 查看架构
file libxxx.so
uname -m
Ubuntu 装 32 位支持:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install gcc-multilib
clang + libc++ 编的库gcc + libstdc++ 链接 → 失败libstdc++libstdc++(默认在 Linux)sudo apt install gcc-9 g++-9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
你可以按这个顺序检查:
gcc --versionldd your_programfile libxxx.soobjdump -T libxxx.so | grep GLIBC你可以直接贴出:
gcc --version我可以帮你精准判断是哪一种不兼容,并给出对应解决办法。