关于在最新版本的GCC和Clang中使 experimental/filesystem 进行编译存在一些问题:experimental::filesystem linker error

但是现在 filesystem 已被c++17接受,因此不再需要experimental-lstdc++fs标志,对吗?

错误的尝试时,我什至无法在头版本的#include <filesystem>clang++上使用g++:http://melpon.org/wandbox

我还需要其他论点吗? -lstdc++fs只是给我experimental版本,如何包含正式接受的版本?

最佳答案

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

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

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

10-07 23:52