Я пытаюсь создать проект, используя следующий рецепт make.
compile:
- wine cl.exe предварительно обработать файл a. cpp в библиотеку / ai
- сделайте что-нибудь в библиотеке / ai для создания a.tmp. cpp
- wine cl.exe скомпилируйте a.tmp. cpp в a.obj
Я запускаю этот рецепт make с помощью gnu make с большим количеством потоков. Предварительная обработка и компиляция выполняются cl.exe с использованием Wine на linux.
Моя проблема в том, что я периодически получаю такие ошибки, как
Неустранимая ошибка C1083: невозможно открыть a.tmp. cpp: такого файла или каталога нет.
Если я проверяю файловую систему, файл a.tmp. cpp действительно существует. Кроме того, я изменил рецепт на
compile:
- wine cl.exe предварительно обработать файл a. cpp в библиотеку / ai
- сделать что-нибудь в библиотеке / ai для создания a.tmp. cpp
- , если a.tmp. cpp не существует, вызвать ошибку
- wine cl.exe скомпилировать a.tmp. cpp в .obj
Тем не менее, ошибка никогда не появляется на 3-м шаге (чего я ожидал).
Я не уверен, является ли это ошибкой параллелизма, ошибкой визуальной студии или ошибкой вина, но увеличение количества потоков увеличивает частоту ошибок.
По связанной ссылке они выполняют некоторую очистку файлового кеша, что я не смог найти, как сделать с вином.
Периодические ошибки доступа к файлам в дочерних процессах
Пожалуйста, предложите любые дальнейшие методы отладки или возможное решение, чтобы исправить это, и сборки продолжают периодически давать сбои.