小编读完陈皓大神关于Makefile的博客之后,对Makefile的使用有了更深入的理解,在此附上陈皓大神makefile博客的链接:https://blog.csdn.net/haoel/article/details/2886。博客中针对Makefile的介绍、编译和链接原理、以及规则都做了详细的介绍,因此小编在此仅归纳两种常用的makefile文件的写法,希望可以帮助读者掌握Makefile的写法。(阅读过程中若有不理解之处,可参考陈皓大神的博客,以此来提升理解)
一、初学者和小项目可使用的makefile写法
举例:一个项目有1个头文件(wrap.h),三个源文件(server.c、client.c、wrap.c),要生成可执行目标文件server、client,最简单的写法如下所示:
all:server client //目标文件server和client
server:server.o wrap.o //server的依赖为server.o和wrap.o
gcc server.o wrap.o -o server -Wall //利用gcc编译器生成可执行文件server
client:client.o wrap.o //client的依赖为client.o和wrap.o
gcc client.o wrap.o -o client -Wall //利用gcc编译器生成可执行文件client
server.o:server.c wrap.h //server.o的依赖为server.c和wrap.h
gcc -c server.c -o server.o -Wall //利用gcc编译器生成中间目标文件server.o
client.o:client.c wrap.h //同上
gcc -c client.c -o client.o -Wa