首页 > 代码库 > Makefile的编写
Makefile的编写
makefile介绍
makefile的功能是管理源文件的编译链接,在makefile我们可以定义一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。具体可以参考:
http://blog.csdn.net/ruglcc/article/details/7814546/
http://www.cnblogs.com/liangxiaxu/archive/2012/07/31/2617384.html
makefile规则
target1: prerequisites1,prerequisites2,... command1 target2: prerequisites1,prerequisites2,... command2 ...
target: 一个目标文件,可以是Object File,也可以是执行文件。
prerequisites: 要生成那个target所需要的文件或是目标。
command: 也就是make需要执行的命令,可以是任意的shell命令
makefile举例
一、这里以一个简单的C程序作为例子,在一个文件夹下有下列的文件:
1、make.exe
这是一个可以执行makefile的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。
2、main.c
1 #include<stdio.h> 2 int main(){ 3 printf("Hello World!\n"); 4 }
3、makefile
test: main.o gcc -o test main.o main.o:main.c gcc -c -o main.o main.c clean: del test.exe main.o
二、我们在此目录下打开shell窗口,输入“make“,enter,就可看见make已经在进行编译,在此文件目录下多了:
1、main.o
2、test.exe
其实在编译时,make是根据makefile文件进行编译的。首先要编译test,而又找不到main.o,于是就会先编译main.o。编译main.o时先找到编译所需的main.c,然后再执行"gcc -c -o main.o main.c"语句生成main.o,此时test所需的文件已生成了,于是执行"gcc -o test main.o"生成test.exe。
我们也可以在shell中输入”make clean“在执行clean,此时的test.exe 和main.o 就会被删除。
//End
Makefile的编写