为什么GCC似乎没有文件系统标准库?

时间:2017-08-24 17:08:04

标签: c++ gcc raspberry-pi c++17 gcc6

我面临文件系统库的问题,它应该包含在c ++ 17编译器中,2天后我试图在raspberry pi中安装gcc-7.0.2但它没有用,它不能识别命令gcc-7或g ++ - 7甚至-std=c++17所以我必须使用apt-get install安装g ++ - 6和gcc-6 无论如何,在安装6版本后,编译器包含c ++ 17。 我正在使用代码块作为IDE,我不得不添加一个新的编译器并添加选项-std = c ++ 17来启用它,但是在主代码中,当我包含文件系统库时,它没有说明这样的文件或目录。 / p>

我的问题是,如何才能正确添加c ++ 17编译器及其库(如文件系统)?

1 个答案:

答案 0 :(得分:19)

GCC v7仍然没有实现<filesystem>,但它确实有文件系统技术规范,它位于<experimental/filesystem>

#include <experimental/filesystem>

// for brevity
namespace fs = std::experimental::filesystem;

int main()
{
    fs::path p = "/path/to/my/file"; // etc...
}

这也可以在GCC v6中找到。

要与库链接,您需要将-lstdc++fs添加到命令行。

注意:当前技术规范与标准委员会决定的<filesystem>最终草案之间可能存在一些细微差别。< / p>

注2: GCC v8现在使用-std=c++17标记实现<filesystem>