本文出自svtter.github.io
本文可以随意转载,但是转载请保留本信息.
makefile写法有复杂的有简单的,我这里提到的主要为了做一些简单的开发,所以还是说些简单的事情。
使用makefile之前,要学会使用bash的一些东西。鸟哥的私房菜虽然说是介绍Linux,但是总感觉很多都是介绍bash,以及和
bash配合使用的一些命令。。。
变量的写法
- 定义的时候直接使用
VAR = main.o
即可这种格式即可 - 使用的时候使用
${VAR}
这种形式来使用,类似于php中的变量。
另外, 位于makefile
外面的变量也是可以使用的,使用的时候使用如下格式VAR = main.o make
即可,这样就相当于在makefile
定义了一个VAR变量。在外定义的变量是优先于makefile里面的变量的,就像是一个预订义的函数一般。
此外,$@
表示当前的目标。如果在clean那里面,$@
指的是clean
make + 命令
写法
-
比如make clean的写法,就是在makefile文件中添加
clean:
rm .. (类似bash的使用方法,这个地方也可以使用变量)
相对的,install等等的方法就类似于这个上面的写法了。
写到这里也是明白了为什么vim里面有个make命令,却没有各种编译命令了= =
然后附加一个自己写的第一个makefile
:(为了读者更加容易理解,我没有使用变量)
run: t2.o test.o cc -o run test.o t2.o ./run test.o: test.c cc -c test.c t2.o: t2.c cc -c t2.c clean: rm *.o rm run
test.c:
#include <stdio.h> /* #include "t2.h" */ typedef struct test { int a, b; }test; test b; int main(int argc, const char *argv[]) { output(); b.a = 1; b.b = 2; printf("%d %d\n", b.a, b.b); return ; }
t2.c:
#include <stdio.h> void output() { printf("This function is in t2.c\n"); }
文件目录是:
– file
– makefile
– test.c
– t2.c
- 使用make可以创建链接文件并且运行。
- 使用
make clean
可以删除生成的文件。