Могу ли я вывести сообщения об ошибке «Make упорядочить» в параллельном режиме? - PullRequest
2 голосов
/ 24 января 2011

У меня простой вопрос: я компилирую программу на C с флагом -j

make -j4

Как заставить все четыре процесса записывать сообщения об ошибках последовательно (одна ошибка за другой)?В настоящее время, когда я запускаю make -j4, я получаю ошибки, затем некоторые команды © mpilation, затем снова некоторые ошибки.Это не читается!Есть ли что-нибудь, чтобы помочь мне?

zile.c: In function 'zile':
zile.c:12: error: 'milojko' undeclared (first use in this function)

zile.c:12: error: (Each undeclared identifier is reported only once
zile.c:12: error: for each function it appears in.)

zile.c:13: error: 'djole' undeclared (first use in this function)
make: *** [zile.o] Error 1
/opt/toolchains/arm-uclibceabi-9260-big/usr/bin/arm-linux-gcc -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -Wall -pipe -D__XENO__ -I/opt/toolchains/arm-uclibceabi-9260-big/usr/include/ -O3 -Wall   -c -o testSine.o testSine.c
testSine.c:7: error: expected ')' before 't'

make: *** [testSine.o] Error 1

То, что я хочу, выглядит примерно так:

error from process one
error from process four
error from process three
error from process two

, без команд, смешанных с ошибками.

1 Ответ

3 голосов
/ 24 января 2011

Неа.Никакой реальной помощи по этому вопросу.Как вы знаете, опция -j запускает столько разных процессов, сколько требуется для ускорения компиляции (при условии, что зависимости позволяют).

Эти процессы полностью несинхронизированы.make просто контролируйте, когда он запускает процессы, и ждите их завершения.make не синхронизирует вывод всех этих различных процессов, это даже не желательно, так как это замедлит каждый процесс компиляции.

Чтобы избежать печати команд, вы можете использовать -s (или --silent) опция при вызове make.Но это не помешает чередованию вывода различных компиляций, происходящих в разных процессах.

...