Makefile编程

Makefile文件的编写(实例详解) 在实例中我通过工程中3个C文件,学习了Makefile中变量的使用,变量的赋值,特殊符号,通配符等等。并进行多文件的编写和改进,从而学习了Makefile的基础知识和理解如何编译和链接这几个文件。... 阅读详情

Makefile文件的写法有很多种,在工程目录当中,每一个文件目录下面都有一个Makefile文件(含有.c的目录),Makefile使得编译程序更加简单

第一种:

hello:hello.c
    gcc hello.c -o hello
其中hello:hello.c  中的hello就是最终要生成的目标文件,hello.c就是生成目标文件所需要的依赖文件,下面是我们经常使用的shell编译命令。这种方法改变程序的名字,那么Makefile改起来就很麻烦,所以就有了第二种

第二种:
TARGET=hello
SRCS=hello.c add.c
CC=gcc
$(TARGET):$(SRCS)
    $(CC) $(SRCS) -O $(TARGET)
定义了一些变量,变量保存的是程序名,这样改起来就方便多了,不用一个个地修改,但是我有很多.c文件的话,这样定义变量也麻烦,那第三种就来了

第三种:
TARGET=hello
SRCS=$(wildcard *.c)
CC=gcc
$(TARGET):$(SRCS)
    $(CC) $(OBJ) -O $(TARGET)
用了通配当前目录下所有的.c文件,这样就不用一个个去改文件名,只要是.c文件就会编译进去。

第四种:
TARGET=hello
SRCS=$(wildcard *.c)
OBJS=$(patsubst %.c,%.o,$(SRCS))
CC=gcc
$(TARGET):$(OBJS)
    $(CC) $(OBJS) -O $(TARGET)
这种和上一种差不多,只不过目标依赖的是由.c生成的.o文件

第五种:
TARGET=hello
SRCS=$(wildcard *.c)
OBJS=$(patsubst %.c,%.o,$(SRCS))
$(TARGET):$(OBJS)
    $(CC) -O $@ $^
%.o:%.c
    $(CC) -O $@ -c $<
clean:
    rm *.o $(TARGET)
这种才是我们常用的一种,其中$@表示目标,$<表示初级依赖,$^表示终极依赖

Makefile 编写简单教程 本教程将详细介绍 Makefile 的编写方法,包括基本概念、语法、变量、函数、规则以及复杂项目中的应用,并结合实际可执行的代码示例,帮助读者全面掌握 Makefile 的使用。简单赋值# 定义变量CC = gcc在简单赋值中,如果变量的值包含空格,必须使用引号将整个值括起来。追加赋值# 追加变量值追加赋值用于向现有变量添加值,+=操作符用于追加值而不替换现有值。条件赋值# 条件变量赋值endif条件赋值允许基于条件来设置变量的值。 阅读详情

相关推荐

Vim编程下自创Makefile模板

前言        一直都对Linux和Vim情有独钟,其实windows也很不错,因为工作上难免有些情况只能使用windows进行开发,包括有些API或者SDK都只有windows版本,只是用Linux的时候就感觉和计算机特别亲近的感觉,哈哈哈,夸张而言。        至于Vim(这里暂且不讨论vim和emacs谁更好的问题,这个是哲学问题),对比起大多数人估计都习惯使用IDE进行编程,使

BE A CREATOR 2351

实用的GCC Makefile语法及参数详解

实用的GCC Makefile语法及参数详解

yangsong4353的博客 2121

Linux内核模块编程,多源码Makefile编写

https://mp.youkuaiyun.com/console/editor/html/107838044 在学习内核模块编程的时候遇到了一些由于Makefile书写不正确导致的问题。一个.c源文件的Makefile按照网上的大部分资料介绍那样是没有问题的,多个源文件的内核模块编程时,就出现问题了。把过程和解决方法贴出来,供大家参考,一起学习。 单文件.c的编程: 单文件.c编写内核模块是常用的内核模块编写方法,对一些比较简单的功能比较使用。 test.c //test.c #in...

linux 1808

一个简单的Makefile

CC=gcc TARGET=test SRC=$(wildcard *.c) OBJECT= ${SRC:.c=.o} INCLUDES=-I/usr/include/alsa LDFLAGS=-lasound all:$(TARGET) $(OBJECT):$(SRC) $(CC) -c $(INCLUDES) $ $(TARGET):$(OBJECT) $(

weed_hz的专栏 894

Linux下C编程中的Makefile

通过定义规则和依赖关系,我们可以实现自动化的构建过程,使得程序的维护和管理更加方便。本文介绍了Makefile的基本概念、语法和用法,并提供了一个简单的示例来帮助您入门。Make命令会自动查找当前目录下的Makefile文件,并按照其中定义的规则执行构建操作。如果Makefile中的规则和依赖关系正确设置,Make命令将根据需要重新编译更新的文件,以确保最终生成的目标是最新的。本文将介绍Makefile的基本概念、语法和用法,并提供一些示例代码来帮助您理解如何编写和使用Makefile。

2301_79326857的博客 130

Linux下的Shell编程与Makefile

本文介绍了Linux下的Shell编程和Makefile的基本概念,并提供了一些示例代码。通过学习和使用Shell编程和Makefile,我们可以提高工作效率,简化任务操作。本文将介绍Shell编程和Makefile的基本概念,并提供一些示例代码来帮助读者更好地理解和使用它们。Makefile通过检测源文件的修改时间和依赖关系,自动判断哪些文件需要重新编译,从而提高项目的构建效率。Shell脚本是一系列Shell命令的集合,保存在文本文件中,并通过执行该文件来运行命令。执行结果将输出当前的日期和时间。

CyberFlare的博客 143

什么是makefile?教你简单编写和使用Makefile

可以简单的理解成一个工程文件的编译规则。Makefile文件描述了Linux系统下C/C++项目工程的编译规则,它的作用是用来自动化编译C/C++的项目。一旦我们编辑好Makefile文件,只需要一个命令,整个项目工程就开始自动编译,而我们也不用手动去输入各种gcc/g++的指令。一个大型的C/C++项目中的源代码文件有成百上千个,它们按照功能、类型,模块存放在不同的目录中。Makefile文件定义了一系列的规则,指明了编译文件的先后顺序,依赖关系和是否需要重新编译等。

weixin_49503250的博客 1030

RK3568点不亮EK79007 MIPI屏?别急着改时序,先检查这个初始化命令

本文深入解析RK3568开发板调试EK79007 MIPI屏幕时初始化命令的关键作用,揭示80%的时序问题实际源于命令配置不当。通过典型故障案例,详细拆解初始化命令的调试方法、寄存器映射及系统化排查流程,帮助工程师快速定位和解决屏幕点亮问题。

weixin_33657090的博客 349

Linux-Makefile编程学习分享

Makefile编程 Makefile中的目标分两类: 伪目标:只作为标签使用,本身没有任何意义! 常用的伪目标: all:当前Makefile第一个目标是伪目标,一般喜欢使用all作为目标名! clean:如果做清除操作,为了明确操作代码,目标可以命名为clean 目标:如果制定工程编译规则,这时使用的就是目标! 目标定义格式: target: 依赖文件 1)拥有自动推导规则! ...

xydlxd118的博客 222

8、水力压裂引起的地质材料力学性质变化的可视化研究

本研究探讨了水力压裂引起的地质材料力学性质变化的可视化方法。利用超声剪切波形数据,通过短时傅里叶变换(STFT)和主成分分析(PCA)进行特征提取和降维,并应用K-means聚类、凝聚聚类和DBSCAN等无监督学习方法对地质力学变化进行非侵入式可视化分析。研究比较了不同特征工程、聚类方法和降维策略对可视化效果的影响,并结合位移不连续性理论为聚类结果分配地质力学变化指数,以提高结果的物理解释性。最终,该方法成功实现了对水力压裂引起的岩石力学性质变化的高效、可靠可视化。

emacs5lisp的博客 109

NX二次开发 计算多个体的最小包围盒

多个体的最小包围盒

weixin_72680115的博客 430

linux编程_Makefile文件

  linux编程——makefile文件    今天我想说说这个makefile文件了,makefile文件?原来在windows平台上我还真没有弄过这个东东,其实也是有的,只是我们没有接触到罢了。    makefile文件,是个什么东西?有什么用?怎么来写?这就是我要说的。    我们都清楚,用传统C、C++语言开发一个程序,都要经历这几个步骤:编辑——编译——连接,连接成功

笑看源码 2889

【论文翻译】YOLO26: KEY ARCHITECTURAL ENHANCEMENTS AND PERFORMANCE BENCHMARKING FOR REAL-TIME OBJECT DETEC

本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其在实时边缘目标检测领域的关键架构改进与性能基准测试结果。YOLO26于2025年9月发布,是YOLO系列中最新、最先进的模型,专为在边缘设备和低功耗设备上实现高效能、高精度和部署就绪性而设计。论文依次详细介绍了YOLO26的架构创新,包括移除分布焦点损失(DFL)、采用端到端无非极大值抑制(NMS)推理、集成渐进式损失(ProgLoss)和小目标感知标签分配(STAL),以及引入MuSGD优化器以实现稳定收敛。

Limiiiing的博客 1682

linux 多文件makefile,Linux多文件编程及Makefile的编写

1 多文件函数编程,把所有的函数分散在不同的源文件里,主函数经常单独写在一个源文件里面2 每个源文件编写配对的.h文件作为扩展名的头文件,不分配内存的内容都可以写在头文件里,至少应该包括函数声明3 每个源文件的使用#include预处理命令,配对头文件是必要头文件,如果头文件在声明的函数中被调用,则也要添加头文件。4 编译多文件程序可以在gcc令后面吧所有的源文件名称列出来;也可以利用makefi...

weixin_35048609的博客 558

QGis二次开发 —— 2、第一个程序 - 加载栅格tif与矢量shp文件(附源码)

QGis二次开发 —— 2、第一个程序 - 加载栅格tif与矢量shp文件(附源码)

1100

激光雷达的64线,32线,16线,你弄懂了吗?

激光雷达的 64 线、32 线、16 线是指激光雷达系统中能够同时发射和接收激光脉冲的激光线的数量5。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 2637

linux多文件编程——makefile

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、多文件编程1.头文件2.功能文件3.主函数二、工程管理工具makefile1.make2.读入数据总结 前言 一、多文件编程 1.头文件 (1)头文件添加方式 <>-----------在系统路径下添加文件----/usr/include 在根路径下 ""-----------在当前路径下添加文件 (2)防止头文件重复编译 #ifndef #def #endif (3)头文件内容 2.功能文件

mindDJX的博客 786

10、网络安全工具:Bettercap 与 Web 应用测试工具全解析

本文详细解析了网络安全工具Bettercap及其在中间人攻击和无线攻击中的应用,同时介绍了多种Web应用测试工具,如Amass、Cadaver、Dirb等,并探讨了工具的使用场景、流程、注意事项以及未来发展趋势,为网络安全测试提供了全面的指导。

u0v1w2x3的博客 226

Makefile编程笔记

只要所有的语法正确,编译器就可以编译出。

开源&&分享 605

基于ESP32的室内空气质量检测系统开发

随着环境污染问题的日益严重,室内空气质量的监测变得越来越重要。室内空气质量的好坏直接影响到人们的健康,尤其是对于在封闭空间长时间待着的人群。为此,基于ESP32的室内空气质量检测系统应运而生。ESP32作为一款集成了Wi-Fi和蓝牙的高性能微控制器,为嵌入式开发提供了良好的平台,适用于构建各种智能硬件设备。本博客将详细介绍如何基于ESP32开发一个室内空气质量检测系统。系统可以实时监测空气中的温度、湿度、二氧化碳浓度、甲醛浓度等指标,并通过Wi-Fi将数据传输到云端或移动设备,方便用户随时查看空气质量情况。

2201_76125393的博客 829

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

分文件编程——Makefile

makefile

ka1es的博客 1122

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

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

[Linux系统编程]Makefile项目管理

分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个`Shell脚本`一样,也可以执行操作系统的命令。

weixin_44972997的博客 3321

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

多文件编程与Makefile脚本

Makefile脚本集合了程序的编译指令的文件,make是一个命令工具,当执行make命令时,它会自动读取Makefile中的编译指令并执行,会自动完成整个项目的自动化编译工作。1、使用Makefile的好处节约编译时间记录文件的依赖关系自动执行编译过程2、Makefile的原理在命令行执行make命令(make是安装在操作系统上的读取、解析、执行Makefile的工具)。make命令会读取当前目录下的makefile、Makefile文件中的内容,解析里面的编译目标。

kyrie_jie的博客 1130

在ubuntu系统下用Makefile方式编程主程序

在ubuntu系统下用Makefile方式编程主程序Makefile 介绍Makefile的规则编写main1.c,sub1.h,sun1.c1.创建函数创建makefile文件输入make命令进行调用并执行 Makefile 介绍 make命令执行时,需要一个 Makefile 文件,以告诉make命令需要怎么样的去编译和链接程序。 首先,我们用一个示例来说明Makefile的书写规则。以便给大家一个感兴认识。这个示例来源于GNU的make使用手册,在这个示例中,我们的工程有8个C文件,和3个头文件,我们

wanerXR的博客 2669

Linux实验---多文件编程Makefile实验二

多文件编程Makefile实验指导书一 实验题目:二 实验目的三 实验内容四 实验步骤五 实验结果六、总结 一 实验题目: 多文件编程Makefile 二 实验目的 (1) 熟悉Linux开发环境 (2) 学习嵌入式开发的基本过程 (3) 了解Makefile的基本内容 (4) 通过对包含多文件的Makefile的编写,熟悉各种形式的Makefile,并且进一步加深对Makefile中用户自定义变量、自动变量及预定义变量的理解。 三 实验内容 1、完成一个简单程序的编译过程 2、实现编写多文件编程的make

BBA_Code的博客 5937

Makefile编程快速上手

一、认识makefile makefile是一个工程管理器,可以在makefile文件中给工程,定义一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。简而言之就是告诉系统如何去编译这个工程。 其中我们使用makefile还有一个很重要的原因,就是make工程管理器根据时间戳,来自动发现更新过的文件从而减少编译的工作量。 就这点文字说明...

qq_35600620的博客 212
上一篇: 数组的地址
下一篇: 大端序与小端序
行走的木乃鱼
博客等级 码龄10年 5粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值