作为Linux或Unix下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般开发情况下,大家都是手工写一个简单Makefile。下面先给一个最简单的示例代码:
#makefile示例说明:
object= main.o function.o
change:$(object)
cc -o change $(object)
mv change $(HOME)/bin
main.o:
cc -c main.c -I$(HOME)/program/date/include
function.o:
cc -c function.c -I$(HOME)/program/date/include
clean:
rm change $(object)
这里是使用unix下的CC编译器,当然也能换成gcc
最后生成的可执行文件名:change
源程序文件:main.c function.c
.h文件(头文件)所在目录:$(HOME)/program/date/include
中间目标文件名:main.o function.o
当在shall中执行命令:
make clean将会执行
rm change $(object)删除文件: change main.o function.o
语句:
mv change $(HOME)/bin将最终生成的可执行文件移动到
$(HOME)/bin这一步可以不要,但这样符合目录管理规范,而且$(HOME)/bin一般在环境变量PATH中有设置,这样可以在任意目录下时也能运行可执行文件。
注意:
makefile编辑时另起一行,注意不能用空格,要用TAB键,否则会报错
makefile里面的注释用#,其它都会报错
Makefile简单介绍
Makefile是用于自动编译和链接的,一个工程有很多文件组成,每一个文件的改变都会导致工程的重新链接,但是不是所有的文件都需要重新编译,Makefile中纪录有文件的信息,在make时会决定在链接的时候需要重新编译哪些文件。
Makefile的宗旨就是:让编译器知道要编译一个文件需要依赖其他的哪些文件。当那些依赖文件有了改变,编译器会自动的发现最终的生成文件已经过时,而重新编译相应的模块。
实例3: