Makefile的基本规则实例说明
Makefile 规则:
目标:目标文件A 目标文件B ...
<tab> gcc -o 与监理的执行文件 目标文件1 目标文件2 ...
* Makefile 中的# 表示注释
* <tab> 要在命令行的第一个字符
* 目标文件和相关文件之间用“:”隔开
# 可以使用续行号(\)将单独一个命令延续成几行。但要注意在续行号后面不能跟任何字符
实例 1:
# 以#开头的为注释:
test: prog.o code.o #生成运行文件test需要用到prog.o 和code.o两个文件(如果make没有加生成的目标文件;则默认使用test)
gcc -o test prog.o code.o#生成test 的GCC命令
prog.o: prog.c prog.h code.h #生成目标文件prog.o需要用到prog.c prog.h 和code.h三个文件
gcc -c prog.c -o prog.o#生成prog.o的命令
code.o: code.c code.h#同prog.o的过程
gcc -c code.c -o code.o
clean:#Makefile的内部命令
rm -f *.o#清除所有以".o"结尾的文件
Makefile的更新从下向上按照时间戳,如果依赖文件的时间戳比生成文件的时间戳新则重新编译。
Makefile的变量就像是一个环境变量。事实上,环境变量在make中也被解释成make的变量。
Makefile的变量大小写敏感,并且基本上使用大写。
Makefile变量的主要作用:
a 保存文件名列表;
b 保存可执行命令名;
c 保存编译器的参数;
Makefile变量的写法:
VARNAME = string
Makefile变量的使用:
${VARNAME}
实例 2:
在实例 1使用变量代替部分文件:
OBJS = prog.o code.o
CC = gcc
test: ${OBJS}
${CC} -o test ${OBJS}
prog.o: prog.c prog.h code.h
${CC} -o prog.c -o prog.o
code.o: code.c code.h#同prog
${CC} -c code.c -o code.o
clean:
rm -f *.o
整理自makefile课件
Makefile的基本规则实例说明相关推荐
- Makefile文件的编写(实例详解)
1.什么是Makefile? 一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,Makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译 ...
- Linux就这个范儿 第8章 我是Makefile
Linux就这个范儿 第8章 我是Makefile P287 Makefile的作用就是--自动化编译,一旦写好,只需要一个make命令(解析Makefile,执行Makefile中描述的操作),整个 ...
- 教会你如何编写makefile文件
最近一直在学习makefile是如何编写的. 当我们写的程序文件比较少的时候,敲入gcc /g++,当你在大型工程中,在一个个编译文件的话,你可能就会很郁闷.linux有一个自带的make命令 ...
- makefile 学习(一)
一.Makefile的基本规则 GNU make 规则: target ... : prerequisites ...command........ target - 目标文件, 可以是Object ...
- linux 建立伪目标过程,linux之Makefile 编写、规则、伪目标、变量
什么是Makefile?首先,make是一个工具程序(Utility software),是一种控制编译或者重复编译软件的工具:make可以自动管理软件编译的内容.方式和时机从而使程序员能够把精力集中 ...
- Linux Makefile自动生成--config.h
2019独角兽企业重金招聘Python工程师标准>>> Linux Makefile自动生成--总体流程 Linux Makefile自动生成--实例 Linux Makefile自 ...
- 每天一篇Makefile(二)
好,废话不多说,进入正题,来看我们今天的要讲的Makefile: lcd.bin: start.o main.o led.o clock.o uart.o lib.o lcd.oarm-linux-l ...
- Linux加减程序编写,Makefile 入门(加减乘除实现)
Makefile 入门(加减乘除实现) 准备 使用任意Linux发行版即可,本文使用WSL Ubuntu. 开始之前,需要安装必要的工具: sudo apt install make g++ 开始 1 ...
- 多文件Makefile编写
工作过程中,平时不怎么关注Makefile的书写规则,对于遇到的编译错误一般能看懂Makefile的基本规则也能解决.但如果想要编写Makefile文件还是有相当的难度的,更不用说包含多个目录和文件的 ...
最新文章
- SSM框架 mybatis-plus + spring + springmvc + redis 水果生鲜产品交易平台
- ClientScriptManager.RegisterStartupScript.
- webservice xsd.exe根据xml生成xsd。然后根据xsd生成java bean
- Mentor PADS 9.5下载安装及破解指南
- Java / Spring:如何快速生成整个Swagger记录的CRUD REST API
- Spring–设计领域模型和服务层
- Linux中Tomcat 服务的搭建
- JQuery实现ajax跨域
- 如何用 30 天入门年薪 30 万的技术领域?
- python-opencv有效随机角度旋转
- ubuntu18 安装 mysql5.7
- 浏览器request得不到cookie_Servlet第五篇「介绍会话技术、Cookie的API、详解、应用」...
- 数字孪生CIM智慧城市BIM,城市cim可视化解决方案公司
- 阿里互联互通再下一城,开放生态缔造新的产业蓝海?
- 编制职工档案管理程序C语言,职工档案管理系统
- 转载——visio密钥
- linux tty core code,linux tty core 源码分析(8)
- oracle toda和pl/sql匪夷所思的差异
- ubuntu linux编译环境搭建,Ubuntu14.04开发环境搭建
- JSON格式转MAP集合
热门文章
- MFC_选择目录对话框_选择文件对话框_指定目录遍历文件
- [Android] Android 锁屏实现与总结 (一)
- java接口对接——别人调用我们接口获取数据
- date-打印或者设置系统日期和时间
- Atitit swt 4.3 4.4 4.5 新特性java attilax总结
- Android Studio 技巧
- [凯立德]2013.12.17凯立德发布秋季版(2F21J0E)最新增量包SP1
- [转载] Python3 使用 SQLite3 数据库的操作笔记:批量插入
- CF932E Team Work(第二类斯特林数)
- python里我最容易搞不清楚问题之一的encode和decode