在linux系统中,当需要编译多个.c文件时,如果我们一个一个去编译源文件,会变得十分麻烦,所以我们通常我编写一个Makefile文件,这个文件相当于一个脚本文件,当完成makefile文件的编写后,只需要通过make命令就可以完成源文件的预编译,编译,汇编,链接过程,生成可执行文件。
target… :prerequisite…
(Tab键)command
格式解释
target:生成的目标文件,可以是可执行文件,也可以是中间目标文件
prerequisite:生成target所需要的文件
command:make需要的执行命令,一般是编译与链接的命令,命令前面必须要有Tab键才能有效果
makefile的简单例子(用的Ubuntu11.10):
下面介绍写的比较好的Makefile文件
.PHONY : clean install unstall //伪指令,当使用make命令的时候不会执行后面的命令,例如make clean,加上 clean后才执行后面的命令。
Object = txl_main.o txl.o//变量的定义,用一个变量代替多个.o文件,会使得Makefile文件变得十分简洁,并且不容易出错。
Cc = gcc
FLAGS = -Wall –g –c//-Wall显示所有警告,-g 可调试,-c编译。
Txl:$(BOTX)
$(cc) $(FLAGS) $^ –o $@
%.o:%.c
$(cc)$(FLAGS) $< -o $@ //命令行中$@代表的是目标文件也就是%.o,$<指的是生成目标文件的依赖文件也就是%.c
clean:
rm–rf txf *.o//
install:
cp./txl /usr/bin
uninstall
rm–rf /usr/bin/txl