GNU Make --output-sync doesn't work?

2020-07-10 10:07发布

问题:

this is driving me bonkers.

For parallel make builds (-j), you're supposed to be able to synchronize the console output. Here is ref:

  • GNU Make Manual: 5.4.1 Output During Parallel Execution

I'm using GNU Make 3.82 for x86_64-redhat-linux-gnu

Un-Synchronized:

make -j8 all         //not synchronized

yields (i'm using eclipse-cdt managedbuild here):

Building file: ../dome.c
Building file: ../main.c
Invoking: GCC C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"dome.d" -MT"dome.d" -o "dome.o" "../dome.c"
Invoking: GCC C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.d" -o "main.o" "../main.c"
Finished building: ../dome.c
Finished building: ../main.c


Building target: empty_linux
Invoking: GCC C Linker
gcc  -o "empty_linux"  ./dome.o ./main.o   
Finished building target: empty_linux

Synchronized Attempt

make -j8 all --output-sync    

yields (same result for -O/-Oline/etc):

make: unrecognized option '--output-sync 

Question

what the heck am I doing wrong??

回答1:

The --output-sync option is only available in GNU make 4.0. Also, in your case you should use:

--output-sync=target

or

-Otarget

But this won't work with version 3.82.