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


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

Linux makefile 教程,简单粗暴,2小时学习makefile

 本文转自:http://blog.csdn.net/liang13664759/article/details/1771246    最近在学习Linux下的C编程,买了一本叫《Linux环...
  • hailong0715
  • hailong0715
  • 2016年07月20日 15:10
  • 1595

Makefile在大型工程文件中的应用简析

这段时间,再次温习了一遍makefile,想着去分析一下大型工程文件中,是怎么使用makefile的,需要注意那些地方,这里以caffe的makefile做一个简短的分析。 这里给出两个非常棒的参考:...
  • sunnyxiaohu
  • sunnyxiaohu
  • 2016年05月12日 11:43
  • 2554

初学Makefile——基本规则和习惯

面试被问到关于Makefile的问题,除了读u-boot和内核的Makefile等机会偶尔接触,根本就不熟悉,说读出个大概意思吧?很多细节不知道又不容易理解,没办法,还是从头动手练一下的好,这个行当,...
  • huqinweI987
  • huqinweI987
  • 2014年04月09日 13:13
  • 2014

嵌入式开发教程之深入学习Make命令和Makefile(上)--千锋培训

  • 2011年05月04日 20:23
  • 2.24MB
  • 下载

深入学习Make命令和Makefile.pdf

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

Makefile学习总结

  • 2012年03月04日 22:30
  • 96KB
  • 下载

makefile学习笔记

  • 2017年03月28日 08:31
  • 1MB
  • 下载

万能Makefile(简化版,更如意看懂,便于学习)

  • 2010年10月22日 20:02
  • 26KB
  • 下载

makefile学习在总结

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

makefile学习,渐进式的

  • 2012年10月21日 16:49
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:makefile学习
举报原因:
原因补充:

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