makefile的写法

原创 2007年09月17日 17:09:00

makefile是一种描述依赖关系的文件, 它主要描述的是整个工程编译规则, 同时也给工程的维护提供很大的方便. 这在大型工程中非常实用. 在写好makefile之后, 只需要在命令行输入make命令, 工程就按照既定的makefile规则进行"自动化编译".

1. 编译(compile)和链接(link):

我们通常所说的编译一般来说指的是编译和链接这两个过程的总称.

不管是什么类型的源文件(.c .cpp .pas .i...), 都需要先通过编译器中的编译单元生成目标文件(Object File), 它在Windows下是.obj文件, 在Linux下是.o文件, 这个过程叫作编译.

然后编译器的链接单元把这些生成的目标文件合成为可执行文件, 这时链接单元只使用这些目标文件, 并不关心源代码, 这个过程叫作链接.

在很多时候, 由于源文件的数目过于庞大, 编译后生成的目标文件数目也就很多, 在链接过程中由于需要指出所有目标文件, 这就显得很不方便, 于是我们可以把多个目标文件打个包.

在Windows下管这种文件叫库文件(Library File), 扩展名为.lib;

在Linux下这种文件叫Archive File, 扩展名为.a.

可见.lib和.a都是编译的产物而非链接的产物.

2. makefile:

我们首先看一个简单的makefile:

CC = g++
OBJS 
=
 main.o base.o derive.o
EXEC 
=
 test

$(EXEC): $(OBJS)
        $(CC) -o $@ $^

main.o: main.cpp base.h derive.h
        $(CC) -c $<

base.o: base.cpp base.h
        $(CC) -c $<

derive.o: derive.cpp derive.h base.h
        $(CC) -c $<

clean:
        rm -rf $(EXEC) *.o

这里需要说明几个概念: 变量, 目标, 依赖.

变量: CC = g++, 这个CC就是一个在makefile里定义的变量, 在定义后可以使用, 使用时是$(CC).

目标和依赖: main.o: main.cpp base.h derive.h, 这个":"(冒号)分开的两边中, 左边就是目标, 右边就是该目标的依赖, 而下一行的命令就是对应于这一对目标/依赖关系的. 当需要实现这个目标时, 如果依赖中有更新, 就需要执行下面的命令.

比如, 当我们执行:

make clean

就会执行对应目标"clean"下的命令, 因为clean是没有依赖的, 所以这个命令总被执行.

3. 隐含变量:

在这个makefile文件中, 可以看到诸如$^ $< $@这样的东西, 这被我称为makefile的隐含变量.

$^: 指的是当前依赖中的所有对象.

$<: 指的是当前依赖中的第一个对象.

$@: 指的是当前目标.

makefile具体写法

  • 2012年01月07日 23:56
  • 101KB
  • 下载

makefile文件写法

  • 2009年05月31日 22:49
  • 33KB
  • 下载

C语言 makefile文件与头文件的写法。

makefile 文件的书写。 总结下make 执行过程       1)make 在当前目录下找 "Makefile"或"makefile"的文件     2)如果找到,则会找文件中第一个目标文件(...
  • OOC_ZC
  • OOC_ZC
  • 2015年12月13日 13:39
  • 893

makefile的写法

  • 2008年11月10日 18:37
  • 71KB
  • 下载

MakeFile写法

  • 2011年11月22日 19:03
  • 134KB
  • 下载

linux makefile的语法及写法

http://blog.csdn.net/zhoubl668/article/details/3952967     最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到...

gcc 中文 描述 包括makefile写法 gdb

  • 2010年11月05日 19:18
  • 145KB
  • 下载

makefile写法

  • 2012年07月02日 21:48
  • 347KB
  • 下载

makefile的命名和写法简化

各位来看的大佬,今天我继续来写Makefile文件的其他简单的内容。Makefile 估计还得写几篇吧,maybe吧…..      那么,还是事先声明,原创,如果有错请告诉我.....我好改......

makefile的写法

  • 2011年07月25日 18:02
  • 569KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:makefile的写法
举报原因:
原因补充:

(最多只允许输入30个字)