编译YugabyteDB v2.14.11失败:链接器无法找到-lstdc++
解决Ubuntu22.04编译YugabyteDB v2.14.11时找不到-lstdc++的问题
编译时出现/usr/bin/ld: cannot find -lstdc++错误,核心原因是缺少GNU标准C++库的开发包,或是编译器环境配置异常,按以下步骤解决:
安装libstdc++开发包
Ubuntu22.04默认搭配gcc 11,对应的标准C++库开发包是libstdc++-11-dev,执行以下命令安装:sudo apt update && sudo apt install -y libstdc++-11-dev校验编译器环境
先确认gcc和g++是否正常安装且版本匹配:gcc --version g++ --version若之前切换过编译器版本,用
update-alternatives切回系统默认的11.x版本:sudo update-alternatives --config gcc sudo update-alternatives --config g++在弹出的选项中选择对应gcc-11的条目。
清理缓存重新构建
进入YugabyteDB的源码目录,删除旧的编译缓存后重新执行构建流程:rm -rf build/ mkdir build && cd build cmake .. ninja兜底检查:确认库路径
如果问题仍存在,检查系统库路径是否包含libstdc++:ldconfig -p | grep libstdc++正常会输出
libstdc++.so.6 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libstdc++.so.6这类结果,若没有则说明库文件未正确安装,重新执行第一步的安装命令即可。
内容的提问来源于stack exchange,提问作者dh YB
相关产品推荐
相关产品推荐

