如何恢复g ++ / gcc编译消息

时间:2014-12-12 23:35:13

标签: gcc makefile

我使用的是CentOS 6.5。当我做make时,我通常会看到Makefile正在执行的完整gcc / g ++命令,比如

...
 gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I/opt/emacs/emacs-24.3/lib -I../src -I/opt/emacs/emacs-24.3/src      -g3 -O2 -MT pthread_sigmask.o -MD -MP -MF .deps/pthread_sigmask.Tpo -c -o pthread_sigmask.o pthread_sigmask.c
...

但在某些系统中,我只看到:

$ make

Building test1.o...

Building test2.o...

...

是否可以更改"建筑......"消息回到完整的gcc / g ++命令输出?

1 个答案:

答案 0 :(得分:1)

使用给定的makefile运行make时看到的输出 取决于makefile的编写方式。你会看到的 makefile的作者希望你看到的输出。

如果makefile中配方中的命令以@为前缀, 那么make将不会回显命令。所以如果我的makefile是,例如

foobar: foobar.o
    gcc -o $@ $<

foobar.o: foobar.c
    gcc -c -o $@ $<

然后make的输出将是:

gcc -c -o foobar.o foobar.c 
gcc -o foobar foobar.o

但如果我将makefile更改为:

foobar: foobar.o
    @echo "Linking foobar"
    @gcc -o $@ $<

foobar.o: foobar.c
    @echo "Compiling foobar"
    @gcc -c -o $@ $<

然后输出变为:

Compiling foobar
Linking foobar

因此,要查看您希望看到的输出,您必须编辑 makefile,从您希望看到的命令中删除@ - 前缀 并完全删除打印&#34; Building ...&#34;消息。

至少,如果制作文件很麻烦,这就是你需要做的事情 你这样使用直接调用gcc / g ++的配方来构建目标。它 他们可能会使用调用某些中间件的配方来构建目标 没有回应编译器命令的工具,而是发出&#34; Building ...&#34; 消息。没有看到makefile,我就不能说了。