码迷,mamicode.com
首页 > 其他好文 > 详细

Makefile文件的写法

时间:2016-01-06 21:43:24      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:

gcc编译步骤:

预编译——>  编译——> 汇编——>连接——>

Make工具:在大型项目中有成百上千个源文件,Make工具是为了解决每次都通过手工输入gcc命令进行编译带来的非常不方便的问题 。

Makefile文件:是描述文件依赖关系的说明,由若干个规则组成。

Makefile规则格式:

    目标:依赖关系

    <tab键>命令

  举个栗子

    all:hello.o

      gcc hello.o -o hello

    hello.o:hello.c

      gcc -c hello.c -o hello.o

    clean:

      rm *.o hello

  引入变量改进后

    CC=gcc

    OBJECT=hello.o

    all:$(OBJECT)

      $(CC) $(OBJECT) -o hello

    $(OBJECT):hello.c

      $(CC) -c hello.c -o $(OBJECT)

    clean:

      rm *.o hello

技术分享

     CC=gcc

     TARGET=all

     OBJECTS=m.o visit.o listen.o watch.o study.o play.o

     $(TARGET):$(OBJECTS)

       $(CC) $(OBJECTS) -o m

     m.o:m.c m.h

       $(CC) -c m.c -o m.o

     visit.o:visit.c

       $(CC) -c visit.c -o visit.o

     listen.o:listen.c

       $(CC) -c listen.c -o listen.o

     watch.o:watch.c

       $(CC) -c watch.c -o watch.o

     study.o:study.c

       $(CC) -c study.c -o study.o

     play.o:play.c

       $(CC) -c play.c -o play.o

     clean:

       rm *.o

 


Makefile预定义变量

 


$@  规则的目标所对应的文件名

$<  规则中的第一个依赖文件名

$^  规格中所有依赖的列表,以空格为分隔符

$(@D)目标文件的目录部分(如果目标在子目录中)

$(@F)目标文件的文件名部分(如果目标在子目录中)

 

 


 

     CC=gcc

 

     TARGET=all

 

     OBJECTS=m.o visit.o listen.o watch.o study.o play.o

 

     $(TARGET):$(OBJECTS)

 

       $(CC) $^ -o m

 

     m.o:m.c m.h

 

       $(CC) -c $< -o $@

 

     visit.o:visit.c

 

       $(CC) -c $< -o $@

 

     listen.o:listen.c

 

       $(CC) -c $< -o $@

 

     watch.o:watch.c

 

       $(CC) -c $< -o $@

 

     study.o:study.c

 

       $(CC) -c $< -o $@

 

     play.o:play.c

 

       $(CC) -c $< -o $@

 

     clean:

 

       rm *.o

 进一步改进:

 

     CC=gcc

 

     TARGET=all

 

     OBJECTS=m.o visit.o listen.o watch.o study.o play.o

 

     $(TARGET):$(OBJECTS)

 

       $(CC) $^ -o m

 

     *.o:*.c

 

       $(CC) -c $< -o $@

 

     clean:

 

       rm *.o

 




    

Makefile文件的写法

标签:

原文地址:http://www.cnblogs.com/jin521/p/5106815.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!