Makefile的写法
1.Makefile的规则
1.1 格式
目标:依赖命令……
必须注意的是,命令前面的不是空格,而是制表符Tab。
1.2 伪目标
makefile中把那些只包含命令,没有任何依赖的目标称为”伪目标”(phony targets)
1 .PHONY: clean 2 clean: 3 rm *.o led.elf led.bin
“.PHONY” 将“clean”目标声明为伪目标
1.3 最终目标
如果用户没有指定执行某一条规则,make会默认执行makefile中的第1条规则,而这条规则中的目标称之为:最终目标
2.Makefile变量
2.1 自己定义变量
使用变量前
app1: app1.o func1.o func2.o gcc app1.o func1.o func2.o -o app1 app2: app2.o func1.o func2.o gcc app2.o func1.o func2.o -o app2
func1.o func2.o多次出现,用变量代替。
使用变量后
obj=func1.o func2.o #等号两边没有空格 app1: app1.o $(obj) gcc app1.o $(obj) -o app1 app2: app2.o $(obj) gcc app2.o $(obj) -o app2
2.2 系统默认的变量
$^:代表所有的依赖文件
$@:代表目标
$<:代表第一个依赖文件
使用变量前:
led.o : led.Sarm-linux-gcc -g –o led.o -c led.S
使用变量后:
led.o : led.Sarm-linux-gcc -g –o $@ -c $^
3.通用规则(%)
led.o:led.sarm-linux-gcc -g -o led.o -c led.Smain.o:main.sarm-linux-gcc -g -o main.o -c main.S可以写成如下: %.o:%.sarm-linux-gcc -g -o %.o -c %.S
观察可知:目标和依赖只有后缀不一样,都只有一个依赖。
4.Makefile使用技巧
4.1 去回显
命令前加@符号
4.2 文件名
make命令默认在当前目录下寻找名字为makefile或者Makefile的工程文件,当名字不为这两者之一时,可用如下方法:
make -f 文件名
转载于:https://www.cnblogs.com/boyiliushui/p/4482902.html
Makefile的写法相关推荐
- Makefile万能写法(gcc程序以及arm-linux-gcc程序)-转
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://7071976.blog.51cto.com/7061976/1322211 在l ...
- linux gcc生成可执行代码命令,Makefile万能写法(gcc程序以及arm-linux-gcc程序)
在linux下使用gcc 编译时,Makefile的万能写法 ,每次只需更改要生成的目标文件名称(test)尽可: objs := $(patsubst %c, %o, $(shell ls *.c) ...
- Makefile写法入门心得
Makefile的写法入门心得 Makefile的出现使得编译过程极大地自动化了,省去了很多人工工作,非常方便.这里,小结一下写Makefile的一点小心得.嗯,对了,差点忘了一件事,同一个Makef ...
- Makefile之大型工程项目子目录Makefile的一种通用写法
原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/article/details/8902133,作者:gqb666 管理Linux环境下的C ...
- C和C++混合编程的Makefile的编写!
在项目实践中,经常遇到C和C++混合编程的情况. 目前的业务需求是: c写的几个文件,和一个C++文件要整合为一个动态库,被C++调用.而这个动态库的生成过程中,会链接几个基础的开发库,比如libz, ...
- makefile的使用方法(简单视频教程以及详细文字教程)
文章目录 1.makefile详细文字教程 2.makefile简单教程(B站视频教程) makefile基本语法格式: 简单示例(单文件)makefile写法 带包含关系的多文件makefile写法 ...
- Makefile(1):基本使用
在桌面系统上开发常使用VS.eclipse.Keil等IDE,编译点一下按钮,就可以完成.但在无桌面的服务器上开发,改怎么做?而编译内部是怎么实现的?改动文件后如何增量文件?掌握Makefile文件写 ...
- Makefile 入门教程
1.Makefile简介 Makefile 定义了软件开发过程中,项目工程编译链.链接的方法和规则. 由 IDE 自动生成或者开发者手动书写. Unix(MAC OS.Solaris)和Linux(R ...
- 如何写好Makefile
Makefile笔记整理 什么是Makefile? makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefi ...
最新文章
- underscore
- 用ATL的W2A和A2W宏转换Unicode与ANSI字符串
- python安装numpy-如何为python安装numpy和scipy?
- SAP创建新新用户新角色和个人配置的相关方法
- 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - C.跑步锻炼
- IntelliJ IDEA里对Lombok插件的配置步骤
- 消防给水及消火栓系统技术规范_消防给水及消火栓系统技术规范5.1 消防水泵 习题...
- java键盘输入到文件中_在Linux中使用java和javac命令编译运行java文件
- mui 批量上传图片 php,MUI+Hbuilder之多图片,单图片上传(五)
- H.264的三种开源编码器比较
- 3种时间复杂度实现不同类型的无序数组去重
- Java数据结构笔记1——稀疏数组sparse array
- iMeta | FSCapture报告录屏和视频剪辑(视频教程)
- 这么热门的互联网行业,哪些岗位最有前途?薪资高吗?
- 三星970PRO用于高速采集存储系统
- c++二分法求平方根
- Z04 - 999、Flink与电商指标分析
- 任务管理器--内存篇(上)
- 成语接龙和唐诗背诵文字游戏开发
- 随手记——静态Flag变量使用不规范导致的重大流程错误
热门文章
- Datatable/Dataset 转 JSON方法
- 检查 Linux 服务器性能
- HTML学习笔记16——尺寸的表示_px、%、em三种
- VelocityTracker简要
- 【WP7进阶】——扩展框架组件
- 女人跳槽:最重要的是你的独立,你的快乐
- 2019年3月未来教育计算机二级题库,2019年3月计算机二Access考试操作模拟试题001...
- python中的命名空间指什么_13.Python中的命名空间是什么
- html仿百度页面代码_百度优化需要注意的4点
- mysql命令行执行复杂sql_mysql命令行中执行sql的几种方式总结