首页 > 解决方案 > Mingw 或 msvc 中的 std::filesystem::relative 错误?

问题描述

我截断了以下代码,它在 mingw(gcc) 和 msvc 上产生以下输出:

std::cout << std::filesystem::relative("D:/home/freddy", "C:/home") << std::endl;

明格(GCC):

"\\home\\freddy"

msvc:

""

gcc 和 clang(都在 linux 上执行):

"../../D:/home/freddy"

在我看来它应该是""or "../../D:/home/freddy",因为在 root_paths 上没有相对路径,但没有擦除根路径的相对路径。

此外,当驱动器不存在时,MSVC 将失败,因为驱动器“尚未准备好”: weakly_canonical: Das Gerõt ist nicht bereit.: "D:/home/freddy" 这也似乎是一个 MSVC 错误std::filesystem::weakly_canonical

标签: c++gccvisual-c++mingwstd-filesystem

解决方案


推荐阅读