C++ 如何启用filesystem.h或修复/filesystem?

C++ 如何启用filesystem.h或修复/filesystem?,c++,c++17,clion,C++,C++17,Clion,我必须为我的项目的文件系统编写代码。我正在使用Linux和Clion进行我的工作。我是include,并试图为编译简单的代码,但有一个错误说并没有对std::experimental::filesystem::create:目录的引用。编译器默认是C++(我尝试过GCC,但也有错误)。我不能只写,我不知道下一步该怎么办。有人能帮我吗 我希望通过std::experimental::filesystem::create_directory(“root”)创建目录,具体取决于您的编译器、它的标准库以

我必须为我的项目的文件系统编写代码。我正在使用Linux和Clion进行我的工作。我是include,并试图为编译简单的代码,但有一个错误说并没有对std::experimental::filesystem::create:目录的引用。编译器默认是C++(我尝试过GCC,但也有错误)。我不能只写,我不知道下一步该怎么办。有人能帮我吗


我希望通过std::experimental::filesystem::create_directory(“root”)

创建目录,具体取决于您的编译器、它的标准库以及您需要与单独的文件系统库链接的版本:

  • 6.x和7.x中的GCC:
    #include
    为您提供了
    std::experimental::filesystem
    ,然后您必须链接到
    -lstdc++fs
  • GCC 8.x及更新版本:
    #include
    为您提供
    std::filesystem
    ,然后您必须链接到
    -lstdc++fs
  • Clang/libc++5.x到6.x:
    #include
    为您提供了
    std::experimental::filesystem
    ,然后您必须链接到
    -lc++experimental
  • Clang/libc++7.x及更新版本:
    #include
    为您提供
    std::filesystem
    ,然后您必须链接到
    -lc++fs
注意,您需要使用显式构建libc++

-DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=YES
和/或

-DLIBCXX_INSTALL_FILESYSTEM_LIBRARY=YES

我解决了这个问题。对于所有阅读此问题的人,在CMakeLists.txt中,您必须先链接库,然后再链接其他内容。CMakeLists.txt必须类似于:

cmake_minimum_required(VERSION 3.14)
project(FileSystem)

set(CMAKE_CXX_STANDARD 17)
link_libraries(-lstdc++fs)
add_executable(FileSystem main.cpp Superblok.cpp Superblok.h Inode.cpp Inode.h 
Memory.cpp Memory.h Filesystem.cpp Filesystem.h)

如果最后放入
link\u库(-lstdc++fs)
,代码将无法工作。

使用gcc,请尝试编译器选项-lstdc++fs@Vlad这是一个链接器选项,不是编译器选项。我有GCC 8.3.4,但没有filesystem.h,只有实验性的/filesystem@Bačić这很奇怪,因为Debian包中有:。我在这个路径中有文件(usr/include/c++/8…)但在Jetbrains Clion和其他编辑器中,我不能包含文件系统库。我应该为此安装一些东西吗?@BačIć对不起,我无法帮助您使用Clion,因为我以前从未使用过它。您确定您使用的是GCC 8而不是其他编译器版本吗?默认情况下,我在代码块和Clion中使用GCC。代码块中也存在问题。Wh在终端I中,我的GCC—V得到了GCCC的3.3.0版本。CyOnAutoC++C++编译器,但问题与它们中的任何一个相同。