学习编写Makefile.pdf
文本预览下载声明
砍砍树树的的
知知识识就就是是力力量量,,技技术术成成就就梦梦想想。。SSttaannddiinngg oonn SShhoouullddeerrss oo GGiiaannttss..
学学习习编编写写MMaakkee iillee
分类: Linux 2013-11-11 21:45 152人阅读 评论 (0) 收藏 举报
vimmake ilegccshell
今天尝试编写一个简单的Make ile,偶然发现了用vim原来这么顺手。看来以后免不了还要倒腾一番。
上图,这是要编辑的几个文件内容。
如下是几个文件的代码:
add.h
/*
@filename add.h
*/
#ifndef _ADD_H
#define _ADD_H
int add(int a, int b);
#endif
gcd.h
/*
@filename gcd.h
*/
#ifndef _GCD_H
#define _GCD_H
int gcd(int a, int b);
#endif
add.c
/*
@filename add.c
用途:计算两个数的和
*/
#include add.h
int add(int a, int b)
return a+b;
}
gcd.c
/*
@filename gcd.c
用途:计算两个数的最大公约数
1
*/
#include gcd.h
int gcd(int a, int b)
int c;
while(b)
c = a % b;
a = b;
b = c;
}
return a;
}
main.c
/*
@author kehr
@time 2013.11.11
@filename main.c
用于练习Makfile的编写
*/
#include stdio.h
#include gcd.h
#include add.h
int main()
int a,b;
while(1)
printf((end with 0 0)input a and b:);
scanf(%d %d,a,b);
if(a==0 b==0)break;
printf(%d 和 %d的最大公约数是 :%d\n,a,b,gcd(a,b));
printf(%d 和 %d的最小公倍数是 :%d\n,a,b,a*b/gcd(a,b));
printf(%d 和 %d的和是 :%d\n,a,b,add(a,b));
}
}
Make ile
#编译main.c add.c gcd.c 生成 main文件
#定义变量
O_FILE = main.o add.o gcd.o
main:$(O_FILE)
gcc -o main $(O_FILE)
main.o: main.c add.h gcd.h
gcc -c main.c
add.o:add.h add.c
gcc -c add.c
gcd.o:gcd.h gcd.c
gcc -c gcd.c
clean:
rm $(O_FILE)
2
Makefile的简单知识:
1.在Makefile中#开始的行都是注释行 .
2.Makefile中最重要的是描述文件的依赖关系的说 明.
一般的格式是 :
target: components
TAB rule
//第一行表示的是依赖关系 .
//第二行是规则 (任意的Shell命令)
这里的TAB指的是一次TAB键的点击
3.
target ...
显示全部