Периодические, случайные ошибки "файл не найден" в подсистеме Windows для Linux (WSL)
Я получаю сообщение об ошибке "Неустранимая ошибка:... не найден", создавая приложение C++, используя либо gcc 4.8, либо clang 3.8 в Ubuntu 16.04.2, работающий в подсистеме Windows для Linux (WSL), при включении заголовка C++ файлов, но только с момента установки обновления для Windows 10 апреля (версия 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 содержит значительную часть общих файлов include. Создаваемые файлы существуют на общем томе под /mnt/d/.
Ответы
Ответ 1
Это было идентифицировано как многопоточная ошибка (https://docs.microsoft.com/en-us/windows/wsl/release-notes#build-17655-skip-ahead) и должна быть исправлена в будущем обновлении Windows.
Поскольку это многопоточная ошибка, возможно, ее можно обойти, не используя многопоточные сборки.
Если вы спешите, возможно, вы сможете просто перейти к инсайдерской программе Windows и использовать один из предварительных сборников.