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基本语法】相关推荐

  1. Makefile的语法

    一.介绍 1.makefile的条目组成 Linux中使用make命令来编译程序,而make命令所执行的动作依赖于Makefile文件.最简单的Makefile文件如下: hello: hello.c ...

  2. make工具和Makefile基础语法(含有交叉编译、pthread_create()的处理)

    目录 含有交叉编译.pthread_create()处理 初次使用 1.编写Makefile文件 2.make 3.make clean Makefile基本语法 1.Makefile规则格式 2.变 ...

  3. Linux下Makefile编写语法

    原创 Linux下Makefile编写语法 2016-07-29 08:31:53 Datrilla 阅读数 1386更多 分类专栏: Linux Makefile 版权声明:本文为博主原创文章,遵循 ...

  4. Makefile文件语法规则及用法总结

    一.Makefile的作用 Makefile文件实质上就是一个工程代码编译脚本,一旦写好,只需要一个make命令,整个工程就会自动按照脚本的规定方式编译,极大的提高了软件开发的效率. make是系统指 ...

  5. Linux后台开发系列之「09.Makefile 基础语法」

    Makefile 版权声明:本文为 cdeveloper 原创文章,可以随意转载,但必须在明确位置注明出处! Makefile 简介 Makefile 是一个管理项目的配置文件,它主要有 2 个作用: ...

  6. Makefile初级语法1

    Makefile基本规则 基本规则如下: target [target...] : [dependent ...][ command ...] # command前必须是TAB 语法示例分析: hel ...

  7. makefile常用语法讲解(1)

    From: http://www.cnblogs.com/mydomain/archive/2011/08/12/2136083.html 1.make是一个解释makefile中指令的命令工具.Ma ...

  8. VS 的makefile工程

    自从IDE的出现简化了代码文件之间关联性管理后,就没多少愿意用makefile管理工程的了.makefile的语法规则也不复杂,加上后续的automake让编写的东西又简化了不少,但是相比IDE点一下 ...

  9. Makefile 使用总结

    1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之 ...

最新文章

  1. Java学习总结:57(Properties子类)
  2. iir数字滤波器_手把手教系列之一阶数字滤波器设计实现(附代码)
  3. scroll-view实现自定义下拉刷新
  4. python基本语法积累~
  5. codevs 2612 最有分解方案 (贪心)
  6. Sqlserver UrlEncode
  7. PHP-Webshell免杀研究
  8. 我的醉驾拘留15日记----第二日凌晨 午夜惊梦
  9. 找出性能消耗是第一步,如何解决问题才是关键
  10. VM虚拟机Ubuntu16 运行facenet人脸识别源码
  11. 如何使用阿里云打造离线下载服务器?
  12. JavaWeb新闻发布系统案例4
  13. 移植ffmpeg到android_1
  14. 网关Gateway的介绍与使用
  15. Vray和PS的冬景效果图制作教程蓝海创意云渲染
  16. pythonsort参数_Python sort()函数有哪些参数?
  17. Excel的选取和函数常用技巧及快捷键(一)
  18. 云计算基础与应用 第八章 云安全
  19. 管理网络(网络概念)
  20. IDEA新建项目需要新建好文件夹

热门文章

  1. 数据库系统之sql语言
  2. 《计算机导论》专业课程的知识总结,计算机导论知识点
  3. vscode 调试flutter 出现错误Run with --stacktrace option to get the stack trace. Run with --info or --dubeg
  4. python矩阵乘法菜鸟_Python中的几种矩阵乘法(转)
  5. Visual C 计算机语言函数应用,Visual C 程序设计
  6. pikachu靶场通关记录
  7. python抓取新闻【华盛顿邮报】
  8. Pbootcms网站防黑、防跨站的经验分享
  9. MySQL - 修改数据库名称
  10. 把本地git分支合并到Dev分支