我必须为我的项目编写文件系统代码。我在工作中使用Linux和Clion。我包含并尝试为其编译简单的代码,但是出现错误,该错误表示没有引用std :: experimental :: filesystem :: create:directories。默认情况下,编译器为c ++(我尝试了gcc,但也有错误)。我不能只包括我,也不知道下一步该怎么做。谁能帮我吗?
我希望通过std :: experimental :: filesystem :: create_directory(“ root”)创建目录
答案 0 :(得分:2)
取决于您的编译器,其标准库及其版本,您需要与单独的文件系统库链接:
#include <experimental/filesystem>
给您std::experimental::filesystem
,然后您必须与-lstdc++fs
链接#include <filesystem>
给您std::filesystem
,然后您必须与-lstdc++fs
链接#include <experimental/filesystem>
给您std::experimental::filesystem
,然后您必须与-lc++experimental
链接。#include <filesystem>
为您提供std::filesystem
,然后您必须与-lc++fs
链接。请注意,您需要显式构建的libc ++
-DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=YES
和/或
-DLIBCXX_INSTALL_FILESYSTEM_LIBRARY=YES
答案 1 :(得分:0)
我解决了这个问题。对于所有阅读此问题的人,必须在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_libraries(-lstdc++fs)
放在最后,则您的代码将无效。