Ubuntu18.04编译libmaus2运行./configure提示std::filesystem缺失如何解决
报错原因说明
该报错未指向具体的单个缺失函数,实际是检测到你的编译环境缺少C++17标准引入的 std::filesystem 整套文件系统操作组件,所以终止了配置流程。
Ubuntu 18.04默认搭载的gcc 7.5版本对std::filesystem的支持不完善,该组件在gcc 7版本中仍处于实验阶段,没有纳入默认标准库,是触发报错的核心原因。
修复方案
优先推荐升级编译器版本的方案,兼容性最好:
- 首先添加工具链源并更新软件列表:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt update
- 安装gcc 8及对应g++版本:
sudo apt install gcc-8 g++-8 - 运行configure前指定使用新安装的编译器,再执行配置命令即可:
export CC=gcc-8 CXX=g++-8 ./configure
如果不想升级编译器,也可以通过添加额外链接参数适配gcc 7:
- 运行configure时添加链接参数指定实验版文件系统库即可:
./configure LDFLAGS="-lstdc++fs"
该方案可能存在后续编译兼容性问题,仅作为临时替代方案使用。
内容的提问来源于stack exchange,提问作者YKY
相关产品推荐
相关产品推荐

