2016-05-17 4 views
0

Я использую $ (информация, чтобы написать что-то на выходе, а затем я проверяю, есть ли какой-либо вирус или нет, а затем я использую $ (ошибка. см. на выходе, что в случае, если несколько $ (информация функции $ (вывод ошибки не всегда в конце. Иногда даже в середине. Зависит от того, как быстрее выполняется процесс make. Можно «подождать» до тех пор, пока все $ (информация будет обрабатываться

Exmaple: 
$(info a) 
$(info a) 
$(info a) 
$(info a) 
$(error ERROR) 

Output 1: 
a 
a 
a 
a 
ERROR 

Output 2: 
a 
a 
ERROR 
a 
a 

ответ

2

info вывод идет в стандартный вывод, а error вывод идет в стандартный поток ошибок по стандартный вывод по умолчанию буфер и STDERR небуферизован;?.. Вот почему они появляются по-другому Вы не говорите, какая версия GNU заставляют вас использовать, но если вы перейдете на более новую версию, я верю он будет сбрасывать как stdout, так и stderr после каждой записи, поэтому вы больше не увидите эту проблему (начиная с GNU make 4.0, я считаю).

В качестве альтернативы вы можете использовать такой инструмент, как stdbuf, который, возможно, уже установлен в вашей системе, если это GNU/Linux, для запуска GNU make.