使用文件系统时仍然需要使用 C++20 链接到 stdc++fs 吗?

Linking to stdc++fs with C++20 still necessary when using filesystem?

我在 experimental::filesystem 刚出来的时候开始使用,我被建议在 stdc++fs 中 link 使用 CMake. 中的 target_link_libraries(MyTarget stdc++fs) 我的程序构建无论哪种方式,但如果我省略额外的 link 命令,我可能会破坏某些东西/做一些不必要的事情吗?

这个问题 是三年前提出的,似乎假设 linking in stdc++fs 是必要的。

编辑:编译器版本为 g++-9 (Homebrew GCC 9.3.0_1) 9.3.0CMake 版本为 3.16。

非常感谢!

从我的评论中删除:

我猜这取决于你的编译器版本。从 cppreference,在文件系统库页面的最底部,您可以找到:

Using this library may require additional compiler/linker options. GNU implementation prior to 9.1 requires linking with -lstdc++fs and LLVM implementation prior to LLVM 9.0 requires linking with -lc++fs

en.cppreference.com/w/cpp/filesystem#注释

如您所述,以下 link 详细介绍了如何在 cmake 中检查编译器身份:How can I add a minimum compiler version requisite?