我得到了间歇性的致命错误:......文件未找到'在Windows子系统Linux(WSL)中运行的Ubuntu 16.04.2下使用gcc 4.8或clang 3.8构建C ++应用程序时出错,包括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 /.
下的共享卷上答案 0 :(得分:15)
这已被识别为多线程错误(https://docs.microsoft.com/en-us/windows/wsl/release-notes#build-17655-skip-ahead),并且应该在将来的Windows更新中修复。
由于这是一个多线程错误,因此可以通过不使用多线程构建来解决它。
如果赶时间,可能只需要访问Windows内部程序并使用其中一个预览版本。
答案 1 :(得分:0)
就我而言,它不是多线程,而是工具链的路径。
失败的情况是:工具链安装在/mnt/c/.../tools/
中
一个很好的例子是:工具链安装在/home/yurir/tools/
我猜想Windows文件夹与ubuntu文件夹的映射会造成一些混乱。