首页 > 代码库 > 实例讲解Linux下的makefile
实例讲解Linux下的makefile
1、程序代码结构如下
makefile/|-- Makefile|-- haha.c`-- hehe.c
1.1、需要被编译的源代码如下
$ cat haha.c #include "stdio.h"int main(){ printf("ha ! ha !\n"); return 0;}
$ cat hehe.c #include "stdio.h"int main(){ printf("he ~ he ~\n"); return 0;}
1.2、makefile的脚本如下
$ cat Makefile .PHONY : dummyCFLAGS = LDFLAGS = ALL_FILES = hehe hahaall : $(ALL_FILES)hehe : hehe.o gcc -o hehe hehe.ohehe.o : hehe.c gcc -c hehe.c -o $@haha : haha.o gcc -o haha haha.ohaha.o : haha.c gcc -c haha.c -o haha.oclean : dummy rm -rf *.o rm -rf $(ALL_FILES)
1.3、执行make命令后的编译结果
$ makegcc -c hehe.c -o hehe.ogcc -o hehe hehe.ogcc -c haha.c -o haha.ogcc -o haha haha.o
-rwxrwxr-x 1 normal normal 4940 12-11 16:08 haha-rw-rw-r-- 1 normal normal 72 12-11 16:03 haha.c-rw-rw-r-- 1 normal normal 872 12-11 16:08 haha.o-rwxrwxr-x 1 normal normal 4940 12-11 16:08 hehe-rw-rw-r-- 1 normal normal 72 12-11 16:03 hehe.c-rw-rw-r-- 1 normal normal 872 12-11 16:08 hehe.o-rw-rw-r-- 1 normal normal 279 12-11 16:04 Makefil
这样我们需要的程序就编译出来了。文件结构如下
makefile/|-- Makefile|-- haha|-- haha.c|-- haha.o|-- hehe|-- hehe.c`-- hehe.o
多出来了4个文件,haha、haha.o、hehe、hehe.o
1.4、执行结果
$ ./haha ha ! ha !
$ ./hehe he ~ he ~
1.5 执行命令make clean,结果如下
$ make cleanrm -rf *.orm -rf hehe haha
多出来的文件都被删除了,接下来对makefile的脚本文件进行一下讲解。
2、下面是对makefile文件的讲解
2.1、在make命令执行后,会在当前目录下搜索makefile、Makefile。如果当前目录没有这个两个文件的话就会报错:找不到makefile
$ makemake: *** 没有指明目标并且找不到 makefile。 停止。
2.2、现在把Makefile改名,用参数-f 来指定要加载的脚本文件也是可以顺利编译的。
$ mv Makefile realmake$ make -f realmake gcc -c hehe.c -o hehe.ogcc -o hehe hehe.ogcc -c haha.c -o haha.ogcc -o haha haha.o
2.3、
实例讲解Linux下的makefile
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。