我正在尝试使用文件系统 http://en.cppreference.com/w/cpp/experimental/fs/path。我有-std=c++11 -std=c++1y
in my CMakeLists.txt
。海湾合作委员会版本是4.9.2
。但是,我有一个错误:
/home/loom/MyProject/src/main.cpp:5:35: fatal error: experimental/filesystem: No such file or directory
#include <experimental/filesystem>
^
compilation terminated.
正确的使用方法是什么std::experimental::filesystem
?
如果我们看一下libstdc++ 状态 https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html我们看到他们确实支持文件系统 TS:
纸|标题 |地位
........
N4100 |文件系统|是
但它说:
本页描述了主线 GCC SVN 中的 C++14 和库 TS 支持,而不是任何特定版本中的支持。
并从尝试这个Wandbox http://melpon.org/wandbox/permlink/abzPdCEgfwCCct22看起来这个库仅在最新的开发分支上可用6.0
除此之外我找不到更多细节。
Update
乔纳森·韦克利的更新:
它现在也可以在 Subversion 的 gcc-5 分支中使用,并将包含在今年晚些时候的 GCC 5.3 版本中。
乔纳森·韦克利也表示在这里回答 https://stackoverflow.com/a/33159746/1708801我们需要使用编译-lstdc++fs
。这包含在gcc 文档的链接部分 https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dynamic_or_shared.html#manual.intro.using.linkage.experimental:
GCC 5.3 包含由技术规范 ISO/IEC TS 18822:2015 定义的文件系统库的实现。因为这是一个实验性库扩展,而不是 C++ 标准的一部分,所以它在单独的库 libstdc++fs.a 中实现,并且没有共享库。要使用该库,您应该包含并链接 -lstdc++fs。该库在非 POSIX 平台上的实现并不完整,特别是 Windows 支持还很初级。
由于文件系统库的实验性质,有关 ABI 稳定性和向后兼容性的通常保证不适用于它。无法保证任何标头中的组件在不同的 GCC 版本之间保持兼容。
另请参阅表 3.1。 C++ 命令选项 https://gcc.gnu.org/onlinedocs/libstdc++/manual/using.html#manual.intro.using.flags.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)