首先是对makefile的理解: 它是一个规则,用来确定如何编译链接c/c++文件。它实现的机制类似于宏,整个过程可以理解为递归方式,一个一个目标实现。(生成的文件为test1和test2都是可执行文件,在linux中后缀名不是很重要)
如下面这段简单的makefile,解释如注释。
all:rest1 rest2 //目标为all,由rest1和rest2组成 //,当运行时就会去先查找rest1再查找rest2 rest2:io.o test.o //test2由io.o和test.o生成 gcc io.o test.o -o test1 //生成过程。其中gcc是编译c的代码,将.o文件链接成可执行test1 rest1:data.o main.o //文件,这里-o的意思是将链接后的文件归档为 gcc data.o main.o -o test2 io.o:io.h io.c //目标:编译出.o文件 gcc -c io.c //编译过程。 data.o:data.c data.h gcc -c data.c clean: //这里是伪目标 rm *.o
原文链接: https://www.cnblogs.com/javaexam2/archive/2012/03/24/2632848.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/45106
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!