Я запускаю mingw32-make
команду непосредственно в PowerShell для сборки проекта на языке C.
Однако иногда вывод полностью искажается, например, часть одной строки вставляется в другую строку и т. д. Иногда это делает чтение вывода невозможным.
Похоже, что выходные данные между двумя запусками одинаковы, т.е. для определенного состояния проекта они всегда будут выдавать одни и те же искаженные выходные данные.
Я попробовал выгрузить вывод в txt-файл как mingw32-make > log.txt
. Я получаю четкий вывод в текстовом файле, но все отчеты об ошибках отсутствуют! Там просто написано "Ошибка компиляции" без фактического отчета об ошибке.
Есть идеи, как это можно исправить?
решение1
то, что вы описываете, похоже mingw32-make
на отправку в более чем один поток. смешивание выходных данных похоже на то, что происходит, когда вы смешиваете Write-Host
и Write-Output
вызываете. 1-й идет [более или менее] напрямую на хост, но 2-й идет в поток успеха изатемхозяину.
Самым простым решением, скорее всего, будет просто перенаправить все потоки в ваш файл ИЛИ объединить нужные вам потоки и вывести Tee-Object
результат на экран и в ваш файл. [ухмылка]
Get-Help about_Redirection
Подробности см. на странице .
Я вижу, что вы использовали mingw32-make 2>&1 > log.txt
. Я не мог указать какой-либо конкретный поток, так как у меня нет возможности протестировать эту конкретную утилиту. Я подозреваю, что я бы mingw32-make *> log.txt
перенаправил все потоки. Ваш шаблон лучше, так как он позволяет избежать излишних усилий.