关于Makefile的编译简洁

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mxgsgtc/article/details/86604406

在编写大型项目的时候,往往编译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后,会出现log: 1.c
是不是变的简洁了呢

猜你喜欢

转载自blog.csdn.net/mxgsgtc/article/details/86604406