[国嵌笔记][017][Makefile工程管理]

发布者:快乐的成长最新更新时间:2025-02-25 来源: cnblogs关键字:Makefile  工程管理  变量 手机看文章 扫描二维码
随时随地手机看文章

Makefile的用途

1.make能够使整个程序的编译、链接只需一个命令就可以完成

2.make的工作主要依赖于Makefile的文件。Makefile文件描述了整个程序的编译、链接等规则,使之自动完成。

 

Makefile的构成

1.规则  

targets(目标):prerequisties(依赖)   

  command(命令)  

注意:command前面是[tab]而不是空格,否则执行会出错  

1.伪目标:只有目标和命令,没有依赖的规则称为伪目标,伪目标通常用 .PHONY:targets (也可以不写)标明是一个伪目标  

2.最终目标:如果 make 后面什么都没有跟,则运行第一条规则,这条目标称为最终目标  

3.指定目标:如果只想运行规则中的一条目标,只需要执行 make targets 就只会产生对应的目标

2.变量  

1.在Makefile中多次出现的组成部分,可以用变量来替换  

2.变量的定义:name=file1 file2... , 注意'='两边不要有空格  

3.变量的使用:$(name) 相当于 file1 file2...  

4.系统默认变量   

$@:表示目标(all除外,all不是目标名)   

$^:表示所有的依赖   

$<:表示第一个依赖  

5.通用规则   

如果多条规则的仅只有目标和依赖的文件类型不同,命令都相同,则多条规则可以用一条通用规则替换

1
2
%.o:%.c    
    arm-liunx-gcc -c $^ -o $@

 

Makefile使用技巧

1.去回显,在对应要去回显的命令前面加上@

2.make工具默认情况下只能运行当前目录下的Makefile或makefile文件,当要指定运行其他文件是可以使用'-f'命令  make -f name

1
2
3
4
5
6
7
8
9
10
11
12
obj=led.o
 
all: $(obj)
        arm-linux-ld -Tled.lds $^  -o led.elf
        arm-linux-objcopy -O binary led.elf led.bin
         
%.o : %.S
        arm-linux-gcc -g -c $^ -o $@
         
.PHONY: clean
clean:
        @rm *.o *.elf *.bin


关键字:Makefile  工程管理  变量 引用地址:[国嵌笔记][017][Makefile工程管理]

上一篇:[国嵌笔记][018][链接器脚本]
下一篇:[国嵌笔记][016][交叉工具链]

推荐阅读最新更新时间:2026-03-23 11:41

IMX6ULL学习笔记(17)——工程管理
一、简介 之前我们把所有源码文件放在一个文件夹下。 这样做存在两个主要问题,第一,代码存放混乱不易阅读。第二,程序可移植性差。如果工程源文件达到几十、甚至数百个的时候,这样一股脑全部放到根目录下就会使工程显得混乱不堪。所以我们必须对工程文件做管理,将不同功能的源码文件放到不同的目录中。另外我们也需要将源码文件中,所有完成同一个功能的代码提取出来放到一个单独的文件中,也就是对程序分功能管理。 如何对一个工程进行整理,使其美观、功能模块清晰、易于阅读。 创建文件夹分类存储代码 修改makefile 二、分类存储代码 修改前的程序结构: 修改后的程序结构: base.lds :将led.lds更改为base.ld
[单片机]
利用基础设施平台工程管理云原生平台
云原生是企业采用云技术促进数字化转型的关键原则之一。随着容器、Kubernetes的部署不断增加和云采用的不断深入,特别是混合云的部署,开发人员的认知负担越来越重。基础设施环境日益复杂且难以管理,无法满足产品或软件开发团队、人工智能(AI)/机器学习(ML)工程师(ModelOps)或提示工程师对敏捷的需求,例如可扩展性、灵活性以及对标准和操作流程、合规和安全要求的环境变化的适应性。 基础设施平台工程被视为一门新学科,它的出现是为了应对系统设计和底层混合基础设施日益增加的复杂性 。在所有注重改善开发人员体验的云原生开发模式中,这是一种尤为有效的方法。 尽管基础设施平台工程被定义为一种有效的实践,可帮助基础设施和运营(I&O)领
[网络通信]
利用基础设施平台<font color='red'>工程</font>,<font color='red'>管理</font>云原生平台
工程师:我推荐这些国产电池管理芯片!
前阵子,EEWorld论坛发起了一次话题讨论,邀请工程师谈一谈在选择电池管理芯片时,重点考虑哪些指标或因素,并鼓励网友推荐自己使用过的具体产品。(原帖地址: https://www.eeworld.com.cn/a90Oeb1) 工程师的推荐,往往是来自一线的心声,希望以下经验能够帮助广大网友。 坛友:qwqwqw2088 BMS芯片,并非特指一种芯片,而是AFE(电池采样芯片)、MCU(微控制处理单元)、ADC(模拟数字转换器)、数字隔离器等产品的统称。按以上说法,把这几个功能包括软件系统集成一起的国产厂商并不多,但有几家电池管理芯片厂,还是很不错的。 比如杰华特的多电池组监控和
[电源管理]
<font color='red'>工程</font>师:我推荐这些国产电池<font color='red'>管理</font>芯片!
高通美国即将裁员千人,含工程师、高级管理人员
10 月 13 日消息,据 CNBC 当地时间周四下午报道,芯片巨头高通将在加州的两个办事处裁员约 1258 人。根据该公司上一份年度财报显示,截至 2022 年 9 月,高通拥有约 51000 名员工。 报道称,高通向加州就业发展部提交了一份文件,文件内容显示该公司将裁减约 1064 名位于圣迭戈的员工和 194 名位于圣克拉拉的员工,两地的裁员将于 12 月 13 日前后生效。 根据当地的《工人调整和再培训通知法》规定,公司在解雇员工之前必须提前 60 天通知员工。 具体来看,这次裁员将包括数名高级管理人员和数百名工程师,还有部分岗位如工程副总裁、业务分析师、助理和产品经理。此外,还有 8 名驻圣迭戈的副总裁也将被裁。不过,涉
[手机便携]
STM32CubeMX系列教程06_Project Manager工程管理器详细说明
一、写在前面 STM32CubeMX的Project Manager工程管理器包含:Project工程管理、 Code Generator代码生成、 Advanced Settings高级设置三部分内容。 这三部分内容决定了工程的一些属性,相关的配置信息比较重要,也容易理解。初学者有必要掌握其中内容。 二、Project工程管理 Project工程管理包含三部分内容:Projcet Settings工程设置、 Linker Settings堆栈设置、 Mcu and Firmware Package MCU和固件包信息。 2.1 Projcet Settings工程设置 A.Project Name:工程名称
[单片机]
STM32CubeMX系列教程06_Project Manager<font color='red'>工程</font><font color='red'>管理</font>器详细说明
德州仪器(TI)为电源工程师提供电源管理实验室套件系列
2016年6月22日,德州仪器(TI)推出TI电源管理实验室套件(TI-PMLK)系列,为工程专业学生和行业专家拉近了电源原理与实际应用间的差距。该套件是首款为大学教育和职业发展打造的全新电源管理培训工具包。 所有的电子系统都需要一个电源解决方案。电源需求的增长意味着对高度熟练的电源工程师的需求也将迎来激增。TI提供一系列的实验室套件以满足这方面的需求,这些实验室套件用系统级推理与论证提供实际操作的电源管理学习经验。 TI-PMLK是一款综合、易于使用且多用途的工具,帮助营造一个简便快捷的学习环境,从而使学生们能够将实验室中获得的实践学习经验应用于他们的电源解决方案设计方面。每个实验室套件包括一个评估板和一本实验室试验手册
[电源管理]
凌力尔特工程师电池管理经验之分享
引言 就混合动力汽车(HEV)和电动汽车(EV)而言,使用锂离子电池,可在功率、能量密度、效率和环境影响之间取得最佳平衡。但同时,锂离子电池也是易损坏和危险的,而汽车环境又相当棘手、难以应付。混合动力汽车和电动汽车的电子产品面临的挑战是,弥补要求苛刻的汽车环境和电池敏感性之间的差距。汽车环境的苛刻和电池的敏感堪称地狱中的绝配。 考虑到汽车对能量、功率和环境的要求,安全、可靠地使用大型锂离子电池组绝对不是一个简单的任务。锂离子电池以满充电状态或满放电状态工作时,容量会降低。考虑到循环往复的充电、组与组之间的差别和不同的环境条件,每节电池的容量都会随着时间推移而降低并产生偏离。因此,电池组要实现15年、5000个充电周期的目标,
[嵌入式]
谷歌如何管理世界上最聪明的工程师?
    谷歌(微博)一直以关注人力资源和管理战略而著称,该公司的一大重要任务就是说服旗下大量工程师服务各自老板和主管经理的管理,并让这些工程师信服这些管理者的价值。 近日,《哈佛商业评论》(Harvard Business Review)刊登的一篇文章就详细解释了谷歌人力资源职员如何回答这一问题——管理者的作用体现在哪里? 工程师一直是谷歌内部的重要力量,在这些工程师的眼中,他们并不需要管理者,因为那样会增加官僚作风、遏制他们的创新,甚至还会让他们偏离“真正的工作”。不过,谷歌在2002年时曾取消了工程师管理者的职位,尝试扁平化组织。事实上,这种做法并没有奏效,而且还导致了一些细小的个人问题也反馈到了首席执行官等高层领导。最终,在经
[手机便携]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved