你提到的「Linux C++ 配置兼容性问题」范围比较广,下面我按常见场景系统性地总结一下,并给出典型问题 + 解决方案,你可以对照自己的情况。
问题:
std::filesystem 找不到原因:
解决方案:
g++ --version
升级 GCC(示例:CentOS):
yum install centos-release-scl
yum install devtoolset-11
scl enable devtoolset-11 bash
CMake 指定:
set(CMAKE_CXX_STANDARD 17)
问题:
/lib64/libc.so.6: version `GLIBC_2.28' not found
原因:
解决方案:
✅ 方法 1:在低版本系统编译
✅ 方法 2:静态链接
g++ main.cpp -static
✅ 方法 3:使用旧 ABI
-D_GLIBCXX_USE_CXX11_ABI=0
查看依赖:
ldd your_binary
strings /lib64/libc.so.6 | grep GLIBC
问题:
std::string 行为不一致原因:
解决方案: 统一 ABI:
-D_GLIBCXX_USE_CXX11_ABI=0 # 老
-D_GLIBCXX_USE_CXX11_ABI=1 # 新
问题:
CMake 3.10 or higher is required
解决:
pip install cmake --upgrade
# 或手动安装
问题:
建议:
Conan 示例:
conan install . --build=missing
g++ -target aarch64-linux-gnu main.cpp
CMake:
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
服务器端 C++ 项目推荐:
如果你能补充以下信息,我可以给更精准的建议:
我可以帮你直接改 CMake / Makefile / 编译命令。