我可以在并行模式下制作安排错误消息吗?

时间:2011-01-24 11:07:58

标签: gcc makefile

我有一个简单的问题,我使用flag -j

编译一个C程序
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 个答案:

答案 0 :(得分:3)

不。在这一点上没有真正的帮助。如您所知,-j选项启动了许多不同的进程来加强编译(假设依赖项允许)。

这些进程完全不同步。 make只是控制它何时启动进程,并等待它们完成。 make不会同步所有这些不同进程的输出,它甚至不可取,因为它会减慢每个编译过程。

为避免打印命令,您可以在调用make时使用-s(或--silent)选项。但是,它不会阻止在不同进程中发生的各种编译的输出交错。