赞
踩
在一个项目中,往往有多个c文件,这些源文件按其类型、功能和模块被放在各个不同的目录下,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,甚至是更复杂的功能操作,makefile就像一个shell脚本一样,其中也可以执行操作系统的命令。
在Linux(Unix)环境下可以使用GNU的make工具构建一个过程,整个工程的编译只需要一个命令。这依赖于Makefile文件。所要完成的Makefile 文件描述了整个工程的编译、连接等规则。
Makefile的通用结构如下:
# 以"#"开头的行表示注释
# 第一条目标为总的目标
# 在目标后跟着该目标的依赖,依赖可以是文件,目录或为其他目标
# 动作可以是linux命令,动作所在的一行必须用[TAB]开头。
target: depend1 depend2 depend3 ...
[TAB] action1
[TAB ] action2
target1:
[TAB] action1
[TAB] action2
下面是一个简单的Makefile文件,用于生成一个名为hello的可执行文件和hello.i的只进行了预处理的文件,而当我们执行make clean时就会删除当前目录下的这两个文件,而使用make install则会把这两个文件保存到当前目录下一个名为hello_world的文件夹下,make uninstall则会删除./hello_world 文件夹下的这两个文件。
CC=gcc
AR=ar
INSTPATH=./hello_world
all:
$(CC) hello.c -o hello
$(CC) -E hello.c
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。