【发布时间】:2018-10-16 19:52:27
【问题描述】:
当包含 C++ 头文件时,在 Windows 子系统 (WSL) 中运行的 Ubuntu 16.04.2 下使用 gcc 4.8 或 clang 3.8 构建 C++ 应用程序时出现间歇性“致命错误:...找不到文件”错误,但仅在几天前安装了 Windows 10 April 更新(版本 1803,OS Build 17134.1)之后。
来自 clang 编译器的示例错误消息:
fatal error: 'boost/preprocessor/list/fold_left.hpp' file not found
来自 gcc 编译器的示例错误消息:
fatal error: boost/mpl/aux_/at_impl.hpp: No such file or directory
我说错误是间歇性的,因为如果我重新运行构建,中断构建的特定错误就会消失,并且构建会运行一段时间,直到它成功构建或随机无法包含其他文件相同类型的“找不到文件”错误。
这个错误的时间和它的随机性让我怀疑这是 WSL 中的一个新错误。其他人看到此问题或对如何解决此问题有建议?
错误并不总是出现在 Boost 包含中,而通常仅仅是因为 Boost 包含整个包含文件的很大一部分。正在构建的文件存在于 /mnt/d/ 下的共享卷上。
【问题讨论】:
-
共享卷是格式化为 NTFS 的 1 TB SSD,在 Windows 10 中挂载为 D: 驱动器。我的 PC 的 C: 和 D: 驱动器出现在路径 /mnt/c 下的 Ubuntu 安装中/mnt/d 分别。请记住,在 Windows 10 更新之前,这一切都有效。
-
我尝试完全卸载并使用 Windows 应用商店中的最新版本重新安装 WSL,并从头开始设置我的 WSL Ubuntu,但问题仍然存在。
-
刚刚获取了最新的补丁,现在在 Windows 10 OS Build 17134.48 上(在此处记录 [support.microsoft.com/en-us/help/4103721/…),但这并没有解决问题。
-
我有同样的问题,这台机器上只有一个 SSD 驱动器,通过 /mnt/c 访问文件。我正在做相当大的编译,它似乎是一个随机文件(通常是一个常见的使用的标题)“缺失”。
-
是的。每个 176xx 修复程序都将在 2018 年秋季更新中面向所有人发布。
标签: c++ gcc boost clang windows-subsystem-for-linux