如何在 gcc 8 上使用 std::filesystem?

新手上路,请多包涵

我已经更新了 gcc 版本, gcc –version 产生以下输出

    gcc (Ubuntu 8.1.0-5ubuntu1~16.04) 8.1.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

我可以在头文件中包含文件系统而不会出现任何错误

#include<filesystem>

但是当我尝试像下面那样访问命名空间文件系统时,我得到了错误

namespace fs = std::filesystem;

错误信息

error: ‘filesystem’ is not a namespace-name
 namespace fs = std::filesystem;

这似乎很奇怪,因为 gcc 8 支持 std::filesystem 并且它在命名空间中不可用,我在访问 std::filesystem 时做错了吗?

是的,我用 -std=c++17 构建

原文由 Naveen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2k
1 个回答

将文件系统库作为参数添加到编译器,该编译器将被转发到链接器。还要确保您使用的是 C++17。 g++ 和 clang++ 都接受这种特殊格式:

 --std=c++17 -lstdc++fs

原文由 Ted Lyngmo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题