您的位置:首页 > 运维架构 > Linux

makefile写法简单示例

2011-06-22 17:30 183 查看
 作为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的宗旨就是:让编译器知道要编译一个文件需要依赖其他的哪些文件。当那些依赖文件有了改变,编译器会自动的发现最终的生成文件已经过时,而重新编译相应的模块。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息