GNU Make --output-sync不起作用?

6

这让我疯狂。

对于并行构建(-j),您应该能够同步控制台输出。以下是参考:

我正在使用 x86_64-redhat-linux-gnu 的 GNU Make 3.82。

非同步:

make -j8 all         //not synchronized

产生了(这里我使用Eclipse-CDT managedbuild):
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

同步尝试

make -j8 all --output-sync    

产生的结果相同(对于-O/-Oline等):
make: unrecognized option '--output-sync 

问题

我到底做错了什么?

1个回答

11

--output-sync选项仅适用于GNU make 4.0。此外,在你的情况下,您应该使用:

--output-sync=target
或者
-Otarget

但是这在3.82版本中不起作用。


哎呀,我感觉有点傻。这确实是4.0版本的功能。现在如果我的Linux技能弱点能够想出如何升级它就好了...谢谢! - J-Dizzle
4
请执行以下命令:wget http://ftp.gnu.org/gnu/make/make-4.0.tar.bz2 && tar xjf make-4.0.tar.bz2 && cd make-4.0 && ./configure && make && sudo make install,然后运行/usr/local/bin/make --version。完成啦! :-) - MadScientist

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接