makefile快速入门
来源:互联网 发布:德国统一 知乎 编辑:程序博客网 时间:2024/06/13 23:20
makefile和make命令一起配合使用,它常常被用来组织c/c++项目的编译。
1,makefile就是一个文件,一般文件名用makefile或者Makefile.(不需要指定解释器,它不是shell)
2,make和makefile,make不指定参数的情况下,默认编译makefile或者Makefile
3,make后面指定参数-f来指定你的makefile的名字,个性化文件名。
4,命令必须用tab键开头。
5,makefile的编写围绕着两个部分:目标文件,依赖文件。
目标文件:依赖文件
6,用@符号将过程掩饰
7,在makefile中只有单行注释,并且注释用#
8,一个makefile中可以有多个目标。
9,如果使用make时,不指定目标,它执行的永远是第一个目标make目标名。
一,makefile变量
变量的定义和shell是一样的 OBJ=file.c
引用方式
shell引用变量:$OBJ或者${OBJ}
makefile引用变量: $(OBJ)
二,基本运算符
= :基本赋值和 :=一样
?= :判断变量是否为第一次定义,如果是就赋值?=后面的值,如果不是,不会进行赋值。
+= :追加,追加是以一个变量内容,内容与内容之间用空格隔开
三,makefile自动推导规则
显示规则:它说明了,如何生成一个或多个的目标文件。这是由makefile的书写者明显指出,要生成的文件,文件的依赖,生成的命令。
隐晦规则:由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写makefile,这是由make所支持的。
自动变量:
$@:目标集合
$<:第一个依赖目标.如果依赖目标是多个,逐个表示依赖目标。
$^:所有依赖目标的集合,去除重复依赖的目标。
%:在makefile中%相当于命令里面的*,代表是匹配所有
特殊变量:
CC:代表的是编译器
make
-f:指定文件名
-i:忽略错误,继续往后执行
-j[N]:提高编译速度,make -j8
-C:改变工作目录之后去做一些事情
-r :只证明推导规则的正确,不会编译文件
export:关键字引出来(导出)export PATH=$PATH:/bin/root
四,makefile文件中路径设置(只是针对makefile文件本身自动推导 规则有效)
路径设置关键字; vpath 和VPATH
ar r $@ $^
五,makefile的引用
include 路径+文件名
如果引用的makefile文件中含有与调用引用的makefile中的目标相同的话,内容会被覆盖,调用的内容将不会显示。
实例:
sort : sort.o insert_sort.o g++ -o sort sort.o insert_sort.oinsert_sort.o : insert_sort.c insert_sort.h g++ -c insert_sort.c insert_sort.hsort.o : sort.c g++ -c sort.cclean : rm *.o rm sort
- Makefile 快速入门
- Makefile快速入门
- Makefile快速入门
- makefile快速入门
- 【Bash百宝箱】Makefile快速入门
- linux下 makefile快速入门
- Linux下Makefile快速编写入门
- Linux下Makefile快速编写入门
- linux成长之路(makefile快速入门)
- Android实战技巧之三十六:Makefile快速入门
- makefile入门
- makefile入门
- makefile入门
- makefile入门
- makefile入门
- MakeFile 入门
- Makefile 入门
- Makefile 入门
- 在防火墙上打开一个端口让外面可以访问到该端口?
- 欢迎使用CSDN-markdown编辑器
- nyoj 92 图像有用区域 bfs
- web端测试1
- camera驱动
- makefile快速入门
- php生成二维码
- 使用maven构建一个SSM(Spring+SpringMVC+Mybatis(阿里数据连接池)的简单环境
- jquery遮罩插件
- JS关于函数方法
- POJ 1069 The Bermuda Triangle 笔记
- Unity GrabPass 实现高斯模糊毛玻璃
- 用bootstrap实现图片的轮播
- Android多线程通讯之AsyncTask使用详解