在编写大型项目的时候,往往编译log是非常多的,让人看着不舒服
比如说一个简单的helloWorld程序:
#include <stdio.h>
int main()
{
printf("hello world\n");
return 0;
}
Makefile也比较简单:
gcc -o 11 1.c
所以 make 执行后,输出: gcc -o 11 1.c,如果大型项目文件很多的话,会很乱,那么怎么办呢? 答案是 在gcc的前面加上@,即 @gcc即可
所以改了下Makefile:
@gcc -o 11 1.c
发现Make执行后,没有输出了。。。这也太简洁了吧,总得把正在编译哪个文件的信息打印出来比较好吧,这时候就得用到notdir这个函数配合使用了,下面给出完整Makefile:
CC := @gcc
all: 11
%.o : %.c
@echo $(notdir $<)
$(CC) -c $< -o $@
11: 1.o
$(CC) -o $@ $<
clean:
@rm -rf 11 1.c
比较粗糙哈,但是能表达出意思,这样在Make后,会出现: 1.c
是不是变的简洁了呢