嵌入式Linux开发工具C语言 Makefile的编写

嵌入式学习之Makefile入门 本文会带你Makefile入门 阅读详情

工程管理器make

1、什么是工程?----如何编写Makefile文件
多个源文件+其他文件(图片+头文件+脚本文件)

2、工程管理器的作用->自动编译
编译多个源文件------------gcc+所有源文件 -o 可执行文件

3、make的依赖Makefile文件

4、Makefile文件是一种脚本文件(批处理),存在相关语法;

5、Makefile语法
三要素:目标、依赖、命令
格式:
目标:依赖
tab 命令

目标:最终生成的文件
依赖:生成目标时所需要的文件
命令:生成目标时,需要执行的命令

执行顺序:
make:默认从第一个目标体执行
make+目标体:从对应的目标体执行
如果目标体后面依赖的文件是一个目标的话,先执行依赖对应的目标,再执行目标体的命令。

做法

新建一个make-test文件夹,在文件夹里写一个hello.c和makefile文件。

hello.c文件:在这里插入图片描述

makefile文件:
在这里插入图片描述
在这里插入图片描述
此时输入命令make会生成一个hello可执行文件

PS:两种生成hello的方法
在这里插入图片描述

关于执行顺序

真目标都会生成对应的文件,伪目标只会执行对应的命令。

.PHONY是一个特殊工作目标(special target),它用来指定一个假想的工作目标,也就是说它后面的并不是一个实际文件,而且肯定要视为未更新(也就是说条件总是满足,需要处理)

编写makefile文件:其中clean是一个伪目标
在这里插入图片描述

在这里插入图片描述
make+目标:从对应目标开始执行

修改后示例:
在这里插入图片描述

在这里插入图片描述
使make的时候命令不回响,不显示的方式,就是在Makefile每条命令的前面加@。但是缺点是,不知道有没有编译好。
在这里插入图片描述

解决方式就是在命令的下面加@echo make done!命令,在完成以后,系统会显示make done!
在这里插入图片描述
在这里插入图片描述

​​​​​​​嵌入式学习笔记(9) Makefile文件详解 读取到BL1后会做Checksum(需要校验的内存区域16KB-16Bytes中,所有内存中的内容按照字节为单位来进行相加,最终相加的和极为校验和,mkv210_image.c将校验和放在BL1头文件第3个字(即0xd0020008--0xd002000c)中,BL0也会计算校验和。通过BL0计算的校验和和BL1头文件中的校验和对比即可得知BL1是否正确),判断BL1是否正确,如果正确则加载BL1到iRAM运行BL1程序(这里的BL1程序指的是16个字节的BL1头文件+我们写的程序+空0) 阅读详情

相关推荐

【嵌入式1】Ubuntu系统下运行C语言程序以及用Makefile方式编程

选择Vmnet8,点击NAT设置,进行端口映射的添加。然后点击添加,输入主机端口 22 ,虚拟机ip (就是刚才我们在ubuntu中查询的,我这里是192.168.161.128),选择TCP协议,虚拟机端口 22 ,然后点击确定。重复上一步骤,依次添加111,2049,9999 端口,确定并保存。在NAT网络下,开发板无法看到Ubuntu,如果开发板需要访问Ubuntu,需要进行端口映射。首先关闭WMware中的Ubuntu,然后编辑虚拟机设置。启动Ubuntu,打开终端,输入。编辑完成后,esc键,

m0_57277815的博客 2348

makefile的使用和基础知识

makefile的使用和基础知识 文章目录**makefile的使用和基础知识**makefile的引入及规则makefile的语法makefile函数 makefile的引入及规则 makefile的语法 makefile函数 ####放的地方

weixin_47180249的博客 595

实验四 嵌入式 linux C语言程序设计实验

1. 根据前面所述库文件创建流程,请编写一个Makefile文件实现自动编译,以完成该库文件的创建工作。 2. 设计一个linux C语言程序,完成文件的复制工作。要求通过使用read()函数和write()函数复制“/etc/passwd”文件到“test”文件中,文件名当程序运行时从键盘键入。

m0_59235382的博客 1183

嵌入式技术及应用-【Ubuntu】实验3-Makefile实验

解:在Makefile中,通常会定义一些变量来存储编译选项和编译目标。为了将hello.c文件编译到目标平台中运行,需要根据目标平台的特性修改Makefile中的变量参数(如,CFLAGS、LDFLAGS、LIBS、INSTALL_DIR等)①CFLAGS:这是编译C源代码的编译器选项。可能需要添加或修改某些选项,以适应目标平台的编译器特性或优化级别。②LDFLAGS:这是链接器选项,用于指定链接过程中的参数,根据目标平台的特定需求,可能需要修改链接器选项,例如指定特定的库文件路径或链接器选项。

爱睡觉的欧包 1271

【嵌入式Linux】2.Linux C语言基础

GCC常用命令总结_CodeAllen嵌入式编程的博客-优快云博客另外这个过程对于初学者可以先忽略,但是后期还是有必要了解这个简单的过程发送了什么,可以参考下文,详细说明了GCC的编译流程底层发生了什么。

CodeAllen嵌入式 3万+

[仿真实战]FDTD Solutions 8.0:从零搭建薄膜光谱分析模型

本文提供了一份基于FDTD Solutions 8.0的薄膜光谱分析模型从零搭建实战指南。通过详细步骤,手把手教你创建玻璃基底与硅薄膜的几何结构、设置仿真区域与边界条件、配置光源与监视器,并最终计算反射率与透射率光谱。内容涵盖参数扫描与优化,旨在帮助用户快速掌握FDTD仿真在纳米光子学与薄膜光学设计中的核心应用。

defi6farmer的博客 498

【Linux】嵌入式Linux之C语言开发基础

C语言编译过程、makefile基础、插件安装。

guilin 1234

【RT-Thread】从零到一:RT-Thread Studio工程创建与程序下载全流程实战

本文详细介绍了RT-Thread Studio开发环境的安装与使用,从工程创建到程序下载的全流程实战指南。通过具体案例演示了如何在STM32平台上快速开发RT-Thread应用,包括时钟配置、内存优化、构建调试等关键技巧,帮助开发者高效完成嵌入式系统开发。

weixin_30336061的博客 541

Linux虚拟机下makefile的编写应用

目的: 1. 熟悉嵌入式 Linux 开发基本过程及基本命令。 2. 了解嵌入式 Linux 开发中各种工具的基本用途。 3. 搭建好嵌入式 Linux 的开发环境。 4. 通过对包含多文件的 Makefile 的编写,熟悉各种形式的Makefile 编写,加深对 Makefile 中用户自定义变量、自动变量及预定义变量的理解。 实验原理及基本技术路线图 1. Makefile 基本规...

苦作舟的空城机 6040

基于Java+SpringBoot+Vue的中小企业设备管理系统的设计与开发(源码+lw+部署文档+讲解等)

💗博主介绍:✌新人博主,工作经验两年+、专注于Java、小程序技术领域和毕业项目实战✌💗🌟文末获取源码+数据库🌟

2301_76502068的博客 1382

DDR内存条选购避坑指南:单Rank vs 双Rank性能实测对比(附2024年颗粒推荐)

本文深入解析了内存条中单Rank与双Rank设计的原理与性能差异。通过实战测试对比,揭示了双Rank内存在高负载场景(如3D渲染、视频剪辑)中凭借Rank Interleaving技术带来的显著性能优势,并提供了2024年针对不同用户需求的DDR4/DDR5内存选购策略与避坑指南。

ik678901的博客 1123

基于c语言的linux嵌入式开发入门

前言 本文主要包含,c语言基本结构与语法、make及makefile的使用、main函数参数与返回值的说明、标准输入、输出、错误流的介绍以及linux管道的应用。 语言数据类型 联合体也有翻译为共用体的,结构类型,也有翻译为结构体的,仅仅是翻译问题,类型是一样的 每个变量都会占用一定的存储单元。 符号常量 100 // 直接常量 "Hello" #define PI 3.14 //符号常量 自动类型转换 强制类型转换 在使用强制转换时应注意以下

qingfengxd1的博客 3231

手机直连卫星上网,3GPP R17/R18到底做了哪些技术升级?(IoT/NR NTN详解)

本文深入解析了3GPP R17/R18标准中手机直连卫星上网的技术升级,重点介绍了IoT NTN与NR NTN两项关键技术。R17通过星历辅助补偿算法和多普勒频移控制,实现了智能手机直连卫星的突破;R18则进一步优化移动性、支持高频段和星上本地交换,提升用户体验。这些技术为物联网和5G/6G通信开辟了新可能。

weixin_33701251的博客 617

嵌入式linux c语言,嵌入式LinuxC语言开发工具.pdf

2 章 嵌入式Linux C 语言开发工具本章目标任何应用程序的开发都离不开编辑器、编译器及调试器,嵌入式Linux 的C 语言开发也一样,它也有一套优秀的编辑、编译及调试工具。掌握这些工具的使用是至关重要的,它直接影响到程序开发的效率。因此,希望读者能自己动手操作,切实熟练掌握这些工具的使用。通过本章的学习,读者将会掌握如下内容:C 语言的产生历史背景嵌入式Linux 下C 语言的开发环境嵌入式...

weixin_40003283的博客 268

当R语言遇见MaxENT:参数优化的艺术与自动化调参实践

本文探讨了R语言与MaxENT在生态位建模中的结合应用,重点介绍了参数优化与自动化调参的实践方法。通过caret与ENMeval工具链,研究人员可以高效处理多物种、多环境变量的大规模分析任务,提升模型性能与工作效率。文章还涵盖了从数据准备到结果可视化的全流程,为生态学家提供了实用的技术指导。

corn8的博客 455

PINN驱动的3D不可压缩流场重建——从稀疏2D2C观测到完整物理场反演——含源码实现

多尺度融合策略在此发挥作用:高分辨率的2D2C数据用于约束平面内的精细结构,而低分辨率的3D3C数据提供第三维度的粗尺度信息。迁移学习架构在此发挥关键作用。这种策略在湍流封闭模型构建中尤为有效,其中RANS提供的平均流场与DNS的雷诺应力数据融合,显著提升了分离流的预测精度。在稀疏数据场景下,注意力权重根据观测数据的分布动态调整,强化数据缺失区域的物理约束,同时避免过拟合于观测点。这种机制与自适应采样的结合,实现了计算效率与重建精度的平衡,在仅保留约百分之十关键节点的情况下,仍能保持高物理一致性。

u012133341的博客 136

【嵌入式Linux基础】Makefile详解

Makefile是一个自动化构建脚本,用于定义项目的编译规则、依赖关系和执行流程。它的核心价值在于:​自动化编译:一键完成「源码 → 目标文件 → 可执行文件」的全流程​避免复杂命令行并减少编译时间增量构建:只重新编译修改过的文件,大幅提升开发效率​统一规范:为项目提供标准化的构建方式,便于团队协作​makefile博大精深,还有很多内容如隐含规则等并没有在本文中介绍,日后精进了,再写其进阶。

lzm548的博客 1640

YOLOv8【第十二章:数据增强与数据工程篇·第10节】主动学习(Active Learning):如何挑选最有价值的样本进行标注!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 508

Ubuntu系统使用gcc和Makefile编译C语言程序

本文介绍了Ubuntu系统下的嵌入式开发基础操作:1)安装Ubuntu 22.04系统并参考优快云教程;2)编写运行Hello World程序,包括创建文件、编译执行过程;3)实现多文件编程,通过main1.c调用sub1.c中的算术函数;4)使用Makefile自动化编译,详细解释了Makefile语法规则,并演示了编译、运行及清理操作。整个过程涵盖了从系统安装到多文件项目管理的嵌入式开发基础环节。(149字)

2503_93444456的博客 1782

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

内农大《嵌入式基础》实验二 C语言进阶和Makefile

(2) 在Caculator.c文件中在对输入的一组数据进行运算,采用哪些运算请自行设计,但每种运算要单独放在一个自定义函数中,所有运算函数放在Caculator.c文件中;(3) 在myDisplay.c文件中输出这一组数的各个运算结果。原因是这个版本的makefile 刚好有。(1) 在inputNum.c文件中输入一组数;提示:进行调试前需要用。(上面标号为5的)的。二、 实验任务与要求。

okfang616的博客 2894

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【嵌入式基础】Ubuntu系统下C语言的编译及Makefile的应用

本文作为嵌入式的基础内容,主要围绕Ubuntu环境配置、网络配置、vim文本编辑器的使用、apt源更换、Linux系统下C语言的编译以及Makefile的基础应用等几个方面展开;了解了这些知识,为我们接下来的嵌入式学习打下基础。

Xicun1984的博客 1887

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【导航】嵌入式 Linux 学习专栏目录 【快速跳转】

本文是 矜辰所致 的 嵌入式 Linux 学习专栏的内容导航

不浮夸,不将就,认真对待学知识的我们 9718

Linux学习之Makefile编写

文章目录1.GCC常见命令1.1 查看gcc版本号1.2 GCC输出目标文件1.3 编译流程2.Makefile基础2.1 编译多个文件2.2 单独编译各个文件,最后链接2.3 Makefile基础 1.GCC常见命令 1.1 查看gcc版本号 Target: x86_64-linux-gnu :说明只能编译在X86架构上运行的程序 1.2 GCC输出目标文件 编译生成目标文件及错误提示 1.3 编译流程 GCC编译器的编译流程是:预处理、编译 、汇编和链接。预处理 就是展开所有的头文件、 替换程序

i阳光仔的博客 1754

Linux C 编程入门 (GCC 和 Makefile的使用和编写)

本文就讲解如何在 Ubuntu 下进行 C 语言的编辑和编译、GCC 和 Makefile的使用和编写。实验环境: Ubuntu Linux 16.04.3,VIM编辑器。

伊丽莎白的学习之路 764

嵌入式Linux(四):GCC编译C代码 Makefile编译文件编写

编写嵌入式Linux应用程序时,编译工具使用的一般是交叉编译版本的GCC,使用方式跟GCC一样。本文,记录使用GCC编译的相关命令,以及编写Makefile文件来编译项目。这些笔记主要是记录韦东山老师视频里关于GCC和Makefile里讲的内容。下面贴下链接。...

weixin_45259896的博客 1035

嵌入式 Linux 入门(十一、make 和 MakeFile)

嵌入式 Linux 入门第十一课,Make 工具和 Makefile 的引入

不浮夸,不将就,认真对待学知识的我们 2997
上一篇: 嵌入式C语言开发 gdb的使用
下一篇: 嵌入式Linux开发工具 多级目录的Makefile的编写
爱高数的薇薇子
博客等级 码龄6年 51粉丝 65原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值