Makefile的使用

来源:互联网 发布:linux vi 修改文件 编辑:程序博客网 时间:2024/06/17 08:26

Makefile产生背景

    一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。

Makefile文件完整过程
1. 工程中需编译源文件及如何编译
2. 需创建库文件及如何创建这些库文件
3. 最后产生我们想要的可执行文件

makefile编写原则

1.似Shell脚本
shell脚本编译基本原则(类同原则)

# 井号。除了做为超级用户的提示符之外,还可以在脚本中做为注释的开头字母,每一行语句中,从#号开始的部分就不执行了。
${VARIABLE} 基本变量替换。大括号限定变量名的开始和结束
TAB键 使用原则
更多参考原则

2.makefile结构
#  变量定义VAR=test   定义变量VAR,强制赋值为app  VAR+=app   在VAR之前定义的值后面再追加app这个值VAR?=testapp  如果之前VAR没有被定义,则定义并使用testapp;否则使用之前的值,连接作用

3.基本原则
  1. 第一条目标为总的目标,
  2. 依赖可以是文件(目录)或为其他目标
  3. 动作可以是Linux命令,动作的那一行第一个字符必须是以TAB键
样例:
target:   depend1  depend2 depend3 ...[TAB]  action1  [TAB ] action2target1:[TAB] action1 [TAB] action2
4.注意点:

makefile可使用名字:makefile(优先级高) Makefile GNUmakefile
运行命令:make+命令行名称
直接运行make 系统会自动寻找Makefile文件
Makefile文件内命令执行存在依赖满足关系

gcc编译命令风格:`编译选项一般置前,链接滞后`gcc ${APPS} main.c -o ${APPS} ${LDFLAGS}标志 `CFLAGE  compile options` 编译选项链接 `LDFLAGE link options`链接选项
Makefile使用
make  找makefile或Makefile文件执行总的目标make clean 执行makefile文件中的clean目标make -C directory 进入到directory文件夹中去执行总的目标make clean -C direcotry  进入到directory文件夹中去执行clean目标make -f comm_makefile   通过-f选项指定一个makefile文件make VAR=value  给Makefile传一个参数VAR,其值为value
原创粉丝点击