解决方法
libc和libstdc在最近的版本中都有一个std :: experimental :: filesystem.我没有意识到直接使用std :: filesystem; C 17尚未发布,这似乎是合理的.
boost有boost :: filesystem,它在某些方面有所不同,但结构几乎相同.编写为使用boost :: filesystem的代码可以相对容易地移植到std :: filesystem.
作为不兼容性的示例,boost具有单个标志枚举,而std具有多个标志枚举位域以及更多设置.
您可能必须将-std = c 1z传递给编译器,检查您的libc或libstdc版本,切换您正在使用的版本,安装新的等等.或者安装boost,并使用其C17s基于的文件系统库的.