为什么我还必须使用 -lstdc++fs?

Why Must I Still Use -lstdc++fs?

有几个关于获取experimental/filesystem to compile in the latest versions of GCC and Clang:

的问题

但现在 filesystem has been accepted into 所以不再需要 experimental-lstdc++fs 标志,对吧?

错误 我什至不能 #include <filesystem>clang++g++ 的头部版本上试穿: http://melpon.org/wandbox

我还需要其他参数吗? -lstdc++fs 只是给了我 experimental 版本,我怎样才能包含正式接受的版本?

C++ 标准中没有指定您必须调用编译器的确切方式。我想这取决于实现来决定,因此可能仍然需要 -lstdc++fs.

请注意,C++17 尚未正式成为标准,实现可能已经实现也可能尚未实现。即使 C++17 最终成为标准,这也不会神奇地改变实现。它甚至没有定义实现应该或不应该要求的链接器标志。完全不相关。

如何在 C++17 成为标准并且您的实现开始支持它之后包含正式接受的版本,完全是 implementation-specific。我们可能只需要等待,看看结果如何。