八:第一期Linux学习之Linux下makefile的语法
(1):makefile的规则格式
目标:依赖的文件集合
命令1
命令2
。。。。。
eg:
main:main.o input.o calcu.o
gcc -c main main.o input.o calcu.o
编译生成main.o input.o calcu.o文件,然后将这些文件链接成一个叫main的可执行文件。
main:main.o input.o calcu.o
gcc -c main main.o input.o calcu.o
main.o:main.c
gcc -c main.c
input.o:input.c
gcc -c input.c
calcu.o:calcu.c
gcc -c calcu.c
clean:
rm *.o
rm main
以上代码中有五条规则,clean是清零规则。
可以用变量将比较复杂的输入替换掉。
(
o
b
j
e
c
t
)
上
面
的
代
码
等
同
于
如
下
代
码
:
m
a
k
e
f
i
l
e
模
式
规
则
和
自
动
化
变
量
的
优
势
:
o
b
j
e
c
t
m
a
i
n
.
o
i
n
p
u
t
.
o
c
a
l
c
u
.
o
m
a
i
n
:
(object) 上面的代码等同于如下代码: makefile模式规则和自动化变量的优势: object main.o input.o calcu.o main:
(object)上面的代码等同于如下代码:makefile模式规则和自动化变量的优势:objectmain.oinput.ocalcu.omain:(object)
gcc -c main $(object)
%.o:%.c
gcc -c $<
clean:
rm *.o
rm main