makefile学习

原创 2016年06月02日 10:28:18

makefile作用就不说了。。。

目前学习只为在win下面使用,就是这么傲骄。


1. 最简单的makefile

敲下 make 之后,会自动找makefile当中的第一个target(目标文件)

Target : Dependencies

目标文件 : 依赖文件

如:

main.exe : main.obj xxx.obj

command...

main.obj : main.c xxx.c

command...


command为对应的compiler 和 linker 名字与所需的选项参数


也可以手动指定要make的目标, make clean (下述)

也可以指定makefile 以及 target ---> make [makefile][target]


2.伪目标

在makefile最开始加上.PHONY: clean


.PHONY: clean

main.exe : main.obj xxx.obj

command...

main.obj : main.c xxx.c

command...

clean:

//用来清除编译过程中产生的多余文件 rm / del


***此处可以不在makefile最开始加上.PHONY: clean, 但是当前make目录下有名为clean的文件时,此时make clean就不行了。


3.自动化变量

$@:  规则的目标文件名

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

$^ :   规则的所有依赖文件列表

如:

main.exe:main.obj xxx.obj

$@ ---> main.exe

$<  ---> main.obj

$^  ---> main.obj xxx.obj

***自定义变量

         BIN=main.exe

         OBJ=main.obj xxx.obj

SRC=main.c xxx.c

$(BIN):$(OBJ)

command...

$(OBJ):$(SRC)

command...

这样当添加新的文件的时候只需要对应的添加.c 与 .obj

4.模式匹配

1).rule 1

%.obj:%.c

command...

2).rule 2

.c.obj:

command...

3).编译当前目录所有c文件

$(BIN):%.exe:%.obj


4).编译多个可执行文件

.PHONY:clean all

BIN=a.exe b.exe

all:$(BIN)

这样当定位到makefile中的第一个target(all)之后, 要生成all就需要生成a.exe b.exe

5.make常用的内嵌函数

$(function arguments)

$(wildcard 模式)

当前目录下匹配模式的文件: src=$(wildcard *.c) ---> 获取所有.c文件

$(src:%.c=%.o), 替换后缀名

OBJ=$(src:%.c=%.o)


第一篇blog就这样完了。

后面会贴上自己需要编译的文件结构以及对应的makefile


是a


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

make以及makefile学习

  • 2015年12月09日 10:40
  • 1MB
  • 下载

makefile学习在总结

  • 2012年05月30日 09:43
  • 87KB
  • 下载

Makefile的学习笔记

1    Makefile GNU make的工作分为两个阶段。在第一阶段,make读取makefile文件、内置变量及其值、隐含规则和具体规则、构造所有目标的依赖关系以及所有目标各自的依赖等。在第...
  • edisonlg
  • edisonlg
  • 2012年01月03日 00:07
  • 17973

makefile学习,渐进式的

  • 2012年10月21日 16:49
  • 2KB
  • 下载

makefile学习

  • 2012年10月29日 00:07
  • 847B
  • 下载

Linux学习笔记——例说makefile 头文件查找路径

0.前言     从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力。所以特意借...

深入学习Make命令和Makefile.pdf

  • 2010年07月21日 15:10
  • 178KB
  • 下载

Makefile学习笔记5

参考文件是:跟我一起写 Makefile     作者:陈皓 检查规则 有时候,我们不想让我们的makefile中的规则执行起来,我们只想检查一下我们的命令,或是执行的序列。于是我们可以使用ma...

Makefile学习总结

  • 2012年03月04日 22:30
  • 96KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:makefile学习
举报原因:
原因补充:

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