首页 > 解决方案 > 如何修复 Code::Blocks 中的“致命错误:文件系统:没有这样的文件或目录”?

问题描述

我正在编写一个删除旧备份文件的脚本。我filesystem像往常一样包含在内,但这一次,我收到了这个错误:

fatal error: filesystem: No such file or directory

我试图包含experimental/filesystem并设置-lstdc++fs为 GCC 标志。没有什么对我有用。

示例代码:

#include <cstdlib>
#include <algorithm>
#include <vector>
#include <filesystem>

namespace fs = std::filesystem;

int main()
{
    fs::path const directory{ "C:\Test" };
    std::vector<fs::directory_entry>::size_type const num_files_to_keep{ 5 };
    ...

标签: c++mingwcodeblocks

解决方案


使用 CodeBlocks 和 GCC 8.0 或更高版本您需要设置 c++17 编译器选项(我使用 CodeBlock 上次夜间构建)。 然后,您必须将库添加到链接器设置选项中。项目构建选项

stdc++fs链接器设置

然后您必须添加#include <filesystem>来自 GCC 8.0 的指令,而不是<experimental/filesystem>
在 Windows 上,目录分隔符是\\(两个反斜杠)。
你需要写:

fs::path const directory { "C:\\Test" };

推荐阅读