关于在最新版本的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
版本,我怎么能包含官方认可的版本?
答案 0 :(得分:9)
C ++标准中没有指定您必须如何调用编译器。我想这取决于实现,因此可能仍然需要-lstdc++fs
。
请注意,C ++ 17尚未正式成为标准,并且实现可能已经或可能尚未实现。即使C ++ 17最终成为标准,这也不会神奇地改变实现。它甚至没有定义实现应该或不应该需要的链接器标志。这是完全不相关的。
在C ++ 17成为标准并且您的实现开始支持它之后,如何包含官方接受的版本,完全是特定于实现的。我们可能只需要等待,看看它是如何运作的。