关于在最新版本的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成为标准并且您的实现开始支持它之后,如何包括正式接受的版本,完全取决于实现。我们可能只需要等待,看看效果如何。