我使用的是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 ++命令输出?
答案 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,我就不能说了。