make笔记

Makefile中一个项由以下结构所组成:

target: dependency_files

    command

比如,有两个文件hello.c,hello.h,创建的目标体为hello.o,执行命令是gcc -c hello.c,Makefile就可以这样写:

hello.o: hello.c hello.h
    gcc -c hello.c

 

一个稍微复杂一点而的例子

sunq: kang.o yul.o
    gcc kang.o bar.o -o myprog
kang.o : kang.c kang.h head.h
    gcc -Wall -O -g -c kang.c -o kang.o
yul.o : bar.c head.h
    gcc -Wall -O -g -c yul.c -o yul.o
 

这里面有有3个目标体,分别为sunq,kang.o,yul.o,如果用户使用命令“make sunq”,则make找到目标体sunq开始执行。在执行时,如果有了target,并且他的修改时间比所依赖的文件更新的话,target是不会重新生成的。

 

Makefile变量:

Makefile有两种定义变量方式,一种是递归展开方式(在引用的时候替换,如果还包含其他变量则递归展开),另一种是简单展开方式(在定义的时候展开,且只展开一次)

递归展开的格式:VAR = var

简单展开的格式:VAR := var

make使用变量的方式$(VAR)

 

我们来使用变量来改造一下上面的例子

OBJS = kang.o yul.o
CC = gcc
CFLAGS = -Wall -O -g

sunq: $(OBJS)
    $(CC) $(OBJS) -o myprog
kang.o : kang.c kang.h head.h
    $(CC) $(CFLAGS) -c kang.c -o kang.o
yul.o : bar.c head.h
    $(CC) $(CFLAGS) -c yul.c -o yul.o

 

Makefile中常见的自动变量

变量含义
$* 不包含扩展名的目标文件名称
$@ 目标文件的完整名称
$< 第一个依赖文件的名称
$+ 所有依赖的文件,以空格间隔
$^ 所有不重复的依赖文件,一空格间隔

 

所以在上例中,Makefile的动作可以这样写

$(CC) $(CFLAGS) -c $< -o $@
 

 

 

 

SQL2000在Win10上安装完整指南:兼容模式、SP4补丁与远程连接配置 数据库兼容性是老系统迁移与运维中绕不开的难题。当历史遗留的SQL Server 2000遭遇全新的Windows 10环境,安装程序常因系统版本检测失败而拒绝运行,这背后是旧版安装程序与NT内核版本间的识别错位。通过兼容模式模拟旧系统环境、以管理员身份运行安装程序,并处理注册表挂起与杀毒软件干扰,即可突破基础安装障碍。安装后的SP4补丁与TCP/IP端口配置,则是保障服务稳定与远程连接的关键。这一技术路径广泛适用于制造企业MES、进销存系统及医院HIS等仍依赖老旧数据库的场景,为IT运维与数据迁移测试提供了 阅读详情

相关推荐

affymatrix探针转换 | GPL5175探针对应的基因转换

一般情况下,有一些比较成熟的对应平台的注释数据集的R包。但是这个注释平台,我在Bioconductor上找了一圈都没有找到。只能通过最原始也最可靠的方法,从GEO数据集上去下载这部分的注释文件。以下展示全过程。 我要检查的数据平台是:GPL5157。 数据集的注释集链接为:https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GPL5175 这个注释数据集比较难弄的地方在于,它的基因集注释的不太好。没有比较直接的可供提取的genesample的信息;在ge.

weixin_40640700的博客 7124

GUN make学习笔记之make显示规则

在上一篇GUN make 学习笔记之make初探中,我们编写了一些规则用于编译和链接我们的程序。每个规则都定义了目标(即被更新的文件)。每个目标文件都依赖一组前提条件(同样也是文件)。当要求更新目标时,make会在任何前提条件被修改且比目标文件新的情况下,执行规则下的命令脚本。因为,每个规则的目标可能是另一规则的前提条件,这样,由目标和前提条件组成的集合将会形成依赖图或者依赖关系(简称依赖图)

Kai_gai的专栏 2524

[LaTeX] 调整参考文献的格式(References),包括作者名缩写,行距,字体,引用顺序等等

在此记录我对LaTeX中参考文献references的尝试,主要涵盖如题几个方面。

the Blog of 等不到天亮丶等时光 4万+

《Don't Make me think》阅读笔记

一、相关情况的说明         时间过得很快,来这家公司四个多月多一点。刚刚完成系统的熟悉部分,在这个阶段完成产品的组合与拆解,在产品规划中形成指导路线。         作为从技术转换过来的产品,在理论方面确实相对薄弱较多。查漏补缺,在这个小方向上让自己无悔。         《Don't make me think》是我理论储备中的第二本理论基础。当前公司所做产品正好是Web类型产品...

未来~超越自己 7727

保姆级教程:用PROGRAM_FTDI搞定Xilinx FPGA的JTAG调试器(基于FT232/FT2232/FT4232)

本文详细介绍了如何使用FT232/FT2232/FT4232系列芯片通过PROGRAM_FTDI工具配置Xilinx FPGA的JTAG调试器。从芯片选型、驱动安装到固件烧写和Vivado验证,提供了完整的实操指南和避坑要点,帮助开发者低成本实现高效调试。

weixin_29271053的博客 2155

单片机通信总述——理论部分(CAN、串口、SPI、I2C等)

并行通信:传输原理:数据各个位同时传输;优点:速度快; 缺点:占用引脚资源多。是指使用 8、16、32 及 64 根或更多的数据线(有多少信号为就需要多少信号位)进行传输的通讯方式,可以同一时刻传输多个数据位的数据。串行通信: 传输原理:数据按位顺序传输;优点:占用引脚资源少; 缺点:速度相对较慢。是指设备之间通过一根数据信号线,地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式,同一时刻只能传输一位(bit)数据。 单工: 数据传输只支持数据在一个方向上传输。信息只能单方向传输的工作方式,一

qq_42475191的博客 1万+

Make.md完全指南:如何用这款革命性笔记组织工具提升Obsidian效率

Make.md是一款为Obsidian打造的革命性笔记组织与个性化引擎,无需额外代码或第三方依赖,即可帮助用户高效管理、标记和个性化笔记。无论是简单的笔记整理,还是复杂的数据库构建,Make.md都能轻松应对,让你的Obsidian使用体验更上一层楼。 ### 🌿 核心功能概览 Make.md为Obsidian用户提供了全方位的笔记管理解决方案,主要亮点包括: - **智能组织系统**:轻

gitblog_00065的博客 452

【深度学习新浪潮】Qwen3.5-397B-A17B 深度解析与工程部署实战:超大MoE模型的推理加速与落地

Qwen3.5-397B-A17B是当前开源社区综合能力最强、部署效率最高的超大模型,其MoE架构彻底解决了“大模型难部署、慢、贵”的痛点。

专注:太空算力、AI infra、异构调度、大模型成本工程 1708

python menuconfig_make menuconfig 笔记

由于公司对于新CPU开发很着急,似乎明年2月份就能达到量产的目标。之前只有2个人在做平台级的开发,于是就另外抽调人手,而我就在其中。我之所心搞openwrt是因为硬件部门的样机一直未有时间表,而我总不能拿几篇网络搜索到的文章交给领导说已经完成储备了。鉴于事务的优先级,老大决定让我月底完成手上的活。于是我也光荣地跳进新平台这个无底坑中。去年开始,我一直担忧自己主攻方向的问题,从目前情况看,依然还是担...

weixin_39590472的博客 540

量化交易python代码解析:从狙击手算法到最优限价算法

在金融市场的竞技场上,量化交易如同一位冷静的策略大师,它以数学模型为剑,以计算机程序为盾,精准出击,捕捉市场的微妙波动。本文将深入探讨五种核心量化交易算法:直接委托算法(DMA)、时间加权平均算法(TWAP)、冰山算法(Iceberg)、狙击手算法(Sniper)、条件委托算法(Stop)以及最优限价算法(BestLimit),揭开它们背后的运作机制与实战应用。

木头大左的博客 1886

CLCD 中国生命周期基础数据库使用攻略

CLCD 是公共建筑碳排放计算的理想选择,其本地化数据可显著提高计算准确性。

hy行者勇哥的博客 2683

《GNU make项目管理》笔记--简单的makefile

make定义了一种语言,可用来描述源文件、中间文件以及可执行文件之间的关系。它还提供了一些功能,可用来管理各种 候选配置、实现可重用程序库的细节以及让用户自定义宏将过程参数化。简言之,make常被视为开发过程的核心,因为它 为应用程序的组件以及这些组件的搭配方式提供了一个可依循的准则。 make的主要价值在于它由能力完成编译应用程序时所需要的一系列复杂步骤,以及当有可能缩短“编辑-编译-调试

TODD911的专栏 3514

【第一章】基于Simulink的控制器开发教程——目录

摘要:本文系统介绍了基于Simulink的控制器开发方法,涵盖PID、状态反馈、模型预测(MPC)、模糊控制、自适应控制等8类主流控制器。针对每种控制器,详细阐述了其基本原理、适用场景,并通过Simulink建模与仿真测试进行实践验证。文章采用"理论+实践"的结构,从算法设计到硬件实现全流程展开,为汽车、航空航天、工业控制等领域的控制器开发提供完整解决方案,最后通过应用对比与学习总结帮助读者掌握不同控制器的核心特性和应用场景。(149字)

熟悉MATLAB/fpga/RK3588/LABVIEW/protus/单片机/dsp/Multisim 387

Linux 下 make 命令 及 make 笔记

Linux 下 make 命令 及 make 笔记 转载 ...

forever_008的博客 229

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

make命令教程笔记

make命令教程 原文地址 代码变成可执行文件,叫做编译(compile);先编译这个,还是先编译那个(即编译的安排),叫做构建(build)。 Make是最常用的构建工具,诞生于1977年,主要用于C语言的项目。但是实际上 ,任何只要某个文件有变化,就要重新构建的项目,都可以用Make构建。 本文介绍Make命令的用法,从简单的讲起,不需要任何基础,只要会使用命令行,就能看懂。我的参考资料主要是Isaac Schlueter的《Makefile文件教程》和《GNU Make手册》。 make的概念 # 它

路漫漫其修远兮 2532

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

make的学习笔记

这个笔记是在终端中的man make的笔记 语法: make [option]... [target] 描述: make是用来自动地决定大规模程序中的哪个小部分程序被重新编译的工具.它常常用于C语言的编译,但是也可以用于其它语言,只要这个语言的编译器可以从shell中调用.实际上,make不只是适用于程序,当一些文件发生了改变,另外一些依赖于这些文件的文件就需要被更新的任务都可以使用make. 在使用make前,你需要写一个Makefile文件,这个文件用来描述你的程序中的文件的关系和更新每个文件的命令的状

小石头会长成大石头么? 258

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

《GUN Make》文档粗读笔记

前言 在嵌入式工程的编译中,make经常与gcc配合使用,用于对工程进行编译。当然,这只是一份GUN Make文档的阅读笔记,我并不打算在这篇笔记中说太多与文档阅读本身无关的东西,因为我懒。一来我接触Make工具没多久,并没有把握说清楚它的由来,二来我不想浪费太多口舌在与笔记本身无关的事情上。对于Make和makefile完全没有概念的你如果看到的这篇文章,建议先去阅读知乎上一位大...

Codinglover 529

用户体验——《Don’t Make Me Think》读书笔记

《Don’t Make Me Think》读书笔记

liu5282828的博客 1509

make 命令参数笔记

make 命令参数笔记 博客分类: C/C++ cmakefilemake -b 忽略兼容性-B 无条件make所有目标-C dir或者--directory=DIR 在读取makefile文件前,先切换到"dir"目录下,即把dir当作为当前目录。如果存在多个-C选项,make的最终当前目录是第一个目录的相对路径,如“make -C /home/ro...

aiyi3849的博客 117

Make.md可视化指南:用列表、表格和日历视图展示你的笔记

Make.md是一款功能强大的笔记管理工具,提供了丰富的可视化视图功能,帮助用户以更直观的方式组织和展示笔记内容。本文将详细介绍如何使用Make.md的列表、表格和日历视图,让你的笔记管理更加高效和有条理。 ## 列表视图:清晰呈现笔记条目 列表视图是Make.md中最基础也最常用的视图之一,它以简洁的方式展示笔记条目,适合快速浏览和管理大量笔记。 在Make.md中,列表视图可以通过[sr

gitblog_00393的博客 728

最好的make学习笔记

目录 什么是makefile 基本命令格式 make命令的执行 编译与链接 make工作流程 通配符与变量 控制语句 内置的函数 Makefile 的简单实例 一个复杂的实例 参考集合 什么是makefile Makefile 文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行文件。尽管看起来可能是很复杂的事情,但是为工程编写Makefile 的好处是能够使用一行命令来完成“自动化编译”,一旦提供一个

搜索引擎预备工程师 455

make学习笔记

makefile入门 1.学习makefile 2.通配符 3.伪目标 4.多目标 5.makefile特征: 6.变量 7.makefile常用的字符串函数调用 8.文件名操作函数 9.隐式规则 10.模式规则 1.学习makefile make---->自动确定工程的那部分源程序文件需要重新编译,编译多个源文件; 用法:make [options] [target] … -f filename -C -e -k -s -S makefile----自动化编译 实例1: all:main.c

VD13715150056李小春的博客 395
上一篇: GDB 笔记
下一篇: 使用automake
「已注销」
博客等级 码龄16年 1粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值