《[linux]makefile入门》由会员分享,可在线阅读,更多相关《[linux]makefile入门(2页珍藏版)》请在金锄头文库上搜索。
1、关于make命令,执行make命令的时候,系统会在当前目录下找名为Makefile或makefile的文件进行编译,如果你的 makefile是别的名字的话,可以使用make f filename来指定你的makefile。直接写一个简单的makefile吧:假设有一个源文件:main.c那么用gcc编译它的命令是:gcc main.c o main我创建一个名为makefile的文件,makefile的基本格式为“目标:依赖 命令”makefile内容为:main : main.cgcc main.c o main在终端执行make命令就可以得到main文件假设我有a.c,b.c,main.
2、c三个源文件,最终要编译成一个名为main的可执行文件则makefile内容为main : a.o b.o main.ogcc a.o b.o main.o o mainmain.o : main.cgcc c main.cb.o : b.cgcc c b.ca.o : a.cgcc c a.c# 用“.PHONY 目标名“定义一个伪目标# 用“make 目标名“执行该伪目标.PHONY : cleanclean :rm f main *.oecho clean此时执行make命令,终端会显示系统执行的每条命令,如果你想系统显示它执行的命令,在每条命令的前面加 上“”即可。如果我想清除掉我编译
3、后的文件,可以rm命令,当然我们也可以清除的功能写入到makefile里边。makefile提供一个伪目标的功能,可以为你的makefile提供额外的功能。下面是提供clean功能的makefilemain : a.o b.o main.ogcc a.o b.o main.o o mainecho okgcc c main.cb.o : b.cgcc c b.ca.o : a.cgcc c a.c# 用“.PHONY 目标名“定义一个伪目标# 用“make 目标名“执行该伪目标.PHONY : cleanclean :rm f main *.oecho clean执行make clean即可进入clean的功能此外,makefile提供系统默认的自动化变$:代表所有依赖文件$:代表目标$:代表第一个依赖文件所以我们可以用gcc $ o $代替刚刚makefile中的gcc a.o b.o main.o o main