Makefile基本示例

  rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml">

关于Makefile介绍内容非常之多,本文通过一个简单的可用的Makefile文件阐述了Makefile的基本原理。通过编写Makefile文件,程序员可以良好的组织程序结构,方便、快捷的进行源代码的编译、连接。

Makefile可以简单的认为就是通过配置代码文件的依赖关系、编译条件、自动检查更新文件,方便得生成可执行文件或者目标文件。Makefile实际上就是一条一条执行编译命令。

通常在我们的程序编写中,通过含有.h头文件和与之对应的.c文件,然后在.c文件中包含.h文件,这就是一个依赖关系。然后通过gcc命令和编译选项生成目标文件。

比如:gcc –Wall –g main.c –o main

这条命令里面包含了:

编译选项-Wall –g

依赖文件 main.c

目标文件main

如果main.c 中调用了其他.o文件中的函数,那么还需要将这些文件进行连接。

       给出一个基本的Makefile进行讲解。

CC=gcc

  DEBUG=-g

  CFLAGS=-Wall $(DEBUG)  -O2 -c

  LFLAGS=-Wall $(DEBUG)

  OBJ=main.o FileParse.o sidstring.o mem.o

  PROGS=readfile

  main:${OBJ}

      $(CC) $(LFLAGS) $(OBJ) -o $@

  main.o:main.c

      $(CC) $(CFLAGS) $<

  FileParse.o:FileParse.c

      $(CC) $(CFLAGS) $<

  sidstring.o:sidstring.c

      $(CC) $(CFLAGS) $<

  mem.o:mem.c

      $(CC) $(CFLAGS) $<

  clean:

      rm -rf *.o

      rm -rf readfile

其中CC DEBUG CFLAGS LFLAGS都为默认的变量。

Main.c:main.o

      $(CC) $(CFLAGS) $<

冒号前面的为目标文件,后面的为依赖列表文件

紧跟着的为编译命令(注意:前面是个tab字符,不是空格)。

我们需要生成的程序为:PROGS readfile;这个主程序依赖于目标文件$(OBJ),通过连接这些目标文件,生成readfile,采用LFLAGS连接变量。

Main.o目标文件依赖于main.c,需要对于 main.c进行编译,采用CFLAGS编译变量。

再通过make运行的过程中,会对其中的变量进行替换$(变量名)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值