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

Jon*_*Mee 5 c++ filesystems boost-filesystem c++17

关于experimental/filesystem在最新版本的GCC和Clang中进行编译有几个问题:experimental :: filesystem链接器错误

但是现在filesystem已经被接受了所以不再需要experimental或者是-lstdc++fs旗帜吧?

错了我甚#include <filesystem>至不能在头版clang++或者g++我尝试时:http://melpon.org/wandbox

我还需要其他一些论点吗?-lstdc++fs只是给我experimental版本,我怎么能包含官方认可的版本?

jot*_*tik 9

在C++标准中没有指定您必须如何调用编译器.我想这取决于实现,所以可能仍然需要-lstdc++fs.

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

在C++ 17成为标准并且您的实现开始支持它之后,如何包含官方接受的版本,完全是特定于实现的.我们可能只需要等待,看看它是如何运作的.

  • 我正在维护我的帖子。我不知道你是否愿意扩展推测,我注意到即使 C++17 现在是标准的,我仍然在输入:-lstdc++fs (2认同)