【makefile基本语法】
makefile基本语法
- 新建makefile
- 赋值
- :=
- =
- ?=
- +=
- 换行符 \
- 自动化变量
- 普通makefile
- 用变量表示依赖文件
- 使用通配符%和自动化变量$@ $<替代依赖和目标
- 使用自动化变量$^ 表示所有依赖
新建makefile
touch makefile
赋值
:=
立刻赋值
makefile中应使用“#”作为注释,但不知为何此处可以用”//"
=
延迟赋值,其值为makefile中最后被指定的值
?=
若变量未被赋值,为其赋值,若已赋值,使用原值
//已经给var1赋值的情况
//未给var1赋值的情况
+=
追加赋值,在已经定义的字符串里添加新的字符串,不过中间会补空格
换行符 \
若赋值很长,也可使用换行符“\”, 如下图
自动化变量
$@: 表示所有目标
$<:表示
$:表示所有依赖
例:将helloworld.c分成三个程序
1、main.c
#include<stdio.h>
#include "hello.h"int main(void){hello();return 0;
}
可使用“cat"查看文件中代码
2、hello.c
注意这里是hello函数
#include<stdio.h>
#include "hello.h"void hello(void){printf("Hello World\n");
}
3、hello.h
#ifndef _HELLO_
#define _HELLO_void hello(void);#endif
普通makefile
此时makefile如下
hello:hello.o main.ogcc hello.o main.o -o hello
hello.o:hello.cgcc -c hello.c -o hello.o
main.o:main.cgcc -c main.c -o main.oclean:rm -rf *.o hello
编译结果:
使用此makefile虽然也可成功编译,但编译文件很多时,会非常复杂,可以使用自动化变量解决此问题
用变量表示依赖文件
后续增加依赖文件时,可直接在变量var后增加
使用通配符%和自动化变量$@ $<替代依赖和目标
var:=hello.o main.ohello:$(var)gcc $(var) -o hello
%.o:%.cgcc -c $< -o $@
main.o:main.cgcc -c main.c -o main.oclean:rm -rf *.o hello
%会自动匹配hello.o hello.c
$<依赖
$@目标
编译结果:
使用自动化变量$^ 表示所有依赖
var:=hello.o main.ohello:$(var)gcc $^ -o helloecho $^
%.o:%.cgcc -c $< -o $@
main.o:main.cgcc -c main.c -o main.oclean:rm -rf *.o hello
编译结果:
是不是一下就简略很多呢
//春草已经破土,等繁花开满校园,可我仍不能去见那劳动湖上的黑嘴鸥,龙沙公园的松鼠,夜市的烤苕皮、梅菜扣肉、烤猪蹄…喜家德虾仁水饺,各家的烤肉火锅阿巴阿巴
【makefile基本语法】相关推荐
- Makefile的语法
一.介绍 1.makefile的条目组成 Linux中使用make命令来编译程序,而make命令所执行的动作依赖于Makefile文件.最简单的Makefile文件如下: hello: hello.c ...
- make工具和Makefile基础语法(含有交叉编译、pthread_create()的处理)
目录 含有交叉编译.pthread_create()处理 初次使用 1.编写Makefile文件 2.make 3.make clean Makefile基本语法 1.Makefile规则格式 2.变 ...
- Linux下Makefile编写语法
原创 Linux下Makefile编写语法 2016-07-29 08:31:53 Datrilla 阅读数 1386更多 分类专栏: Linux Makefile 版权声明:本文为博主原创文章,遵循 ...
- Makefile文件语法规则及用法总结
一.Makefile的作用 Makefile文件实质上就是一个工程代码编译脚本,一旦写好,只需要一个make命令,整个工程就会自动按照脚本的规定方式编译,极大的提高了软件开发的效率. make是系统指 ...
- Linux后台开发系列之「09.Makefile 基础语法」
Makefile 版权声明:本文为 cdeveloper 原创文章,可以随意转载,但必须在明确位置注明出处! Makefile 简介 Makefile 是一个管理项目的配置文件,它主要有 2 个作用: ...
- Makefile初级语法1
Makefile基本规则 基本规则如下: target [target...] : [dependent ...][ command ...] # command前必须是TAB 语法示例分析: hel ...
- makefile常用语法讲解(1)
From: http://www.cnblogs.com/mydomain/archive/2011/08/12/2136083.html 1.make是一个解释makefile中指令的命令工具.Ma ...
- VS 的makefile工程
自从IDE的出现简化了代码文件之间关联性管理后,就没多少愿意用makefile管理工程的了.makefile的语法规则也不复杂,加上后续的automake让编写的东西又简化了不少,但是相比IDE点一下 ...
- Makefile 使用总结
1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之 ...
最新文章
- Java学习总结:57(Properties子类)
- iir数字滤波器_手把手教系列之一阶数字滤波器设计实现(附代码)
- scroll-view实现自定义下拉刷新
- python基本语法积累~
- codevs 2612 最有分解方案 (贪心)
- Sqlserver UrlEncode
- PHP-Webshell免杀研究
- 我的醉驾拘留15日记----第二日凌晨 午夜惊梦
- 找出性能消耗是第一步,如何解决问题才是关键
- VM虚拟机Ubuntu16 运行facenet人脸识别源码
- 如何使用阿里云打造离线下载服务器?
- JavaWeb新闻发布系统案例4
- 移植ffmpeg到android_1
- 网关Gateway的介绍与使用
- Vray和PS的冬景效果图制作教程蓝海创意云渲染
- pythonsort参数_Python sort()函数有哪些参数?
- Excel的选取和函数常用技巧及快捷键(一)
- 云计算基础与应用 第八章 云安全
- 管理网络(网络概念)
- IDEA新建项目需要新建好文件夹
热门文章
- 数据库系统之sql语言
- 《计算机导论》专业课程的知识总结,计算机导论知识点
- vscode 调试flutter 出现错误Run with --stacktrace option to get the stack trace. Run with --info or --dubeg
- python矩阵乘法菜鸟_Python中的几种矩阵乘法(转)
- Visual C 计算机语言函数应用,Visual C 程序设计
- pikachu靶场通关记录
- python抓取新闻【华盛顿邮报】
- Pbootcms网站防黑、防跨站的经验分享
- MySQL - 修改数据库名称
- 把本地git分支合并到Dev分支