Makefile最简版本,看完你就会写Makefile了

项目管理-(补充)七种基本质量工具 七种基本质量工具,用于PDCA循环的架构内 解决与质量相关的问题,分为老七工具和新七工具。 1)老七种:刘英只点劣质茶(流程图、因果图、直方图、散点图、帕累托图、控制图、核查表)2)新七种:锯树联亲测动优(矩阵图、树形图、关联图、亲和图、过程决策程序图、活动网络图、优先矩阵) 阅读详情

大学有阵子做嵌入式的时候觉得Makefile简直高不可攀~~


教程大多数都在试图把许多细节都讲清楚~~没有跟教程死磕3天的劲头真的不容易搞懂Makefile


而且写Makefile需要一点点gcc编译器的储备知识。对于在linux上刚上手的开发者的确有点绕。


所以我在这里做了个最简版的Makefile,看懂这个,你大体能知道Makefile该怎么写~~~~其他细节,只能“大行不顾细谨”了


从这里下载Makefile最简版本:

http://download.csdn.net/detail/sera_ph/7111665


里面的文件为 DandL.txt  Makefile  outlib.c  outlib.h  testmake.c


其中main函数位于testmake.c中

testmake.c 中调用了由outlib.h声明outlib.c定义的一个函数。

使用gcc将这个最简单的工程编译链接的shell命令,在DandL.txt中

gcc -c outlib.c
gcc -c testmake.c
gcc testmake.o outlib.o -o testmake


gcc -c 的意思是将(.c文件)源文件编译,生成目标文件(.o文件)~~(源文件的#include预处理就能找到对应的头文件(.h文件))
gcc 目标文件 -o testmake的意思是将目标文件链接,生成可执行文件。testmake是可执行文件的名字。

这些就是你需要知道的gcc储备知识


Makefile就是针对这3个代码文件的最简版本

Makefile的基本语法如下:

target...(目标) : prerequisites...(依赖文件)
	command(shell命令)


这些通过我写的Makefile很容易理解:

all: testmake.o outlib.o
	gcc testmake.o outlib.o -o exeFile
outlib: outlib.c outlib.h
	gcc -c outlib.c
testmake: testmake.c
	gcc -c testmake.c
clean:
	rm -f *.o exeFile
很明显,我们能看到,这个Makefile包含4个基本语句。


当在当前文件夹下,输入make outlib时,就相当于执行target为outlib的那语句的command

执行结果如下:

[***@localhost testmake]$ ls
DandL.txt  Makefile  outlib.c  outlib.h  testmake.c
[***@localhost testmake]$ make outlib
gcc -c outlib.c
[***@localhost testmake]$ ls
DandL.txt  Makefile  outlib.c  outlib.h  outlib.o  testmake.c

其中,make all和make clean是Makefile最常用的功能,一般要注意检查一下。


当你掌握这些~你已经出师可以自己写Makefile~当然,还有许多高端的技巧等你学习探索。

BQ27220燃料计量芯片与Arduino库kode_bq27220实战指南 燃料计量(Fuel Gauge)是嵌入式电池管理系统的核心技术,通过电压、电流、温度多维建模实现荷电状态(SOC)与健康状态(SOH)的动态估算。其原理基于电化学阻抗补偿算法(如CEDV),区别于单电压查表法,具备自学习与老化适应能力。该技术显著提升便携设备续航预测精度与低功耗可靠性,广泛应用于TWS耳机、可穿戴设备及医疗电子等场景。本文围绕TI BQ27220高精度燃料计量IC及其配套Arduino库kode_bq27220展开,覆盖硬件连接规范、I²C初始化要点、SOC/SOH实时读取、EDV阈值配置 阅读详情

相关推荐

MicroLogix1400编程(使用RSLogix 500 + RSLinx Classic Lite)

MicroLogix1400编程

noscallion的博客 1万+

一个单的Makefile

一个小例子学习一个单的Makefile

weixin_49028237的博客 270

ArcGIS Pro 3.4 二次开发 - 地理数据库

本文介绍了在ArcGIS Pro SDK 3.4和.NET 8环境下,如何操作地理数据库的多种方法。首先,通过路径打开文件地理数据库,并处理可能出现的异常。其次,使用连接属性或sde文件路径打开企业级地理数据库。此外,还展示了如何从项目项、要素图层中获取地理数据库,以及如何执行SQL语句。后,文章详细说明了如何从地理数据库中获取单个定义或定义列表,包括表定义、要素类定义、关系类定义和要素数据集定义。这些操作均在后台线程中执行,确保应用程序的响应性。

Winemonk 927

【Linux】详解Linux中的Makefile文件

Makefile文件是Linux中用于编译和链接的自动化工具,是GNU工具(vi、gdb、makefile)的一部分。 为什么需要编Makefile文件 程序的生成过程分为:编译期(源文件.c编译生成.o文件)和链接期(把所有.o文件链接生成可执行文件)。如果程序更新,下次生成可执行文件会对所有文件再次执行这个生成过程。因此需要Makefile文件,在修改源文件后,只编译修改后的文件,节省编译时间。 Makefile的执行原理 程序第一次编译时,会保存所有生成的中间文件.o文件,下次编译时只编译修改的

努力让自己的能力配得上梦想. 1115

Linux操作系统Makefile基本语法

这条规则的目标是 mainmain.o、 input.o和 calcu.o是生成 main的依赖文件,如果要更新目标 main,就必须先更新它的所有依赖文件,如果依赖文件中的任 何一个有更新,那么目标也必须更新,“更新”就是执行一遍规则中的命令列表。Makefile第一条规则的目标成为默认目标,只要默认目标更新了那么就认为 Makefile的工作。

m0_61292310的博客 612

Linux内核Makefile系统文件详解

什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows 的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile 还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己makefile了,会不会makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为, makefile关系到了整个工程的编译规则。

嵌入式Linux内核的博客 1422

【Linux】Makefile文件

记录了Makfile文件

wuwenbin12的博客 4217

Linux c==Makefile版本 (18)

大学有阵子做嵌入式的时候觉得Makefile直高不可攀~~教程大多数都在试图把许多细节都讲清楚~~没有跟教程死磕3天的劲头真的不容易搞懂Makefile而且Makefile需要一点点gcc编译器的储备知识。对于在Linux上刚上手的开发者的确有点绕。所以我在这里做了个版的Makefile,看懂这个,你大体能知道Makefile该怎么~~~~其他细节,只能“大行不顾细谨”了从这里下载Make

女王有颗钻石心 435

看完你就会Makefile

原文地址:blog.csdn.net/sera_ph/article/details/22390891 所以我在这里做了个版的Makefile,看懂这个,你大体能知道Makefile该怎么~~~~其他细节,只能“大行不顾细谨”了 从这里下载Makefile版本: http://download.csdn.NET/detail/sera_ph/7111665

tangtang_yue的博客 443

Makefile新手?千万别错过了《驾驭Makefile

Makefile新手?千万别错过了《驾驭Makefile》 网上搜索makefile教程,转载和推荐多的就是陈皓《跟我一起 Makefile》系列,无出其右。 这个系列很不错,适合初学Makefile,了解Makefile的各种规则、语法、依赖和命令。 网上有人说学了一下午《跟我一起 Makefile》就会makefile了。 我也试过,照着《跟我一起 Makefile》学了几天,还是没能把一个小工程的Makefile出来。所以,如果你学习了几天也没出可以工作的Makefile来,相信我,你并

洛奇看世界 3890

跟我一起Makefile笔记总结

跟我一起Makefile笔记总结

SudekiMing的博客 2074

makefile教程(一)

一直对makefile文件一知半解,今天好好研究了一下他的用法。 研究过后,发现其实makefile语法很单,核心思想就是执行对应的指令而已,为了叙述方便先从单的指令讲起。例如: A : cmd a B : C D cmd b C : cmd c D : cmd d #注意cmd前面必须要有tab键 你可以把A,B看作是一个指令标签,也...

专注于网络编程,游戏后台,高并发 668

如何Makefile-极

因为在学OS的过程中,有再Linux下编译多C文件的需求,只会make,看到Makefile却很头疼,但终会有些Makefile的需求,故学之 make工具是管理C在编译、链接中的高效工具,看起来复杂但核心逻辑并不难懂 how to write Makefile 在Unix下的软件编译,你就不得不自己makefile makefile关系到了整个工程的编译规则 makefile带来的好处就是——“自动化编译” make是一个命令工具,是一个解释makefile中指令的命令工具 编译.

FNAspectOL的博客 236

makefile教程(二)

上篇讲解了makefile的基础知识,这篇介绍点更有意思的,能够大幅度提高编编译指令效率的方法。 有这样一个需求,先将文件下的所有c文件编译,然后链接成可执行文件。 你不会要我如下的代码吧: app: a.o b.o c.o .... gcc -o app a.o b.o c.o a.o : a.c gcc -c -o a.o a.c b.o : b.c gcc...

专注于网络编程,游戏后台,高并发 620

makefile】跟我一起 Makefile

什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不得不自己makefile了,会不会makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。

kissdragan的博客 1172

跟我一起Makefile

Makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是——“自动化编译”,一旦好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。

qq_44857749的博客 1721

Linux驱动

一、实验目的:编Linux驱动二、实验平台迅为itop4412开发板(开发板运行Linux小系统)三、实验流程:(1)了解驱动:包含头文件;模块信息声明;模块驱动的入口、出口;功能实现四个部分。Linux头文件:它们是在Linux源码目录下的:include/linux/ 信息声明:所有的Linux 代码必须遵循GPL 协议,如果不声明GPL 协议,模块将无法在Linux 中使用。

霁风AI 904

跟我一起 Makefile

跟跟我一起 Makefile陈皓 (CSDN)概述什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE 都为你做了这个工作,但我觉得要作一个好的和professional 的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不

menuconfig的专栏 1341

makefile(这哥们很强,看完这篇文章,自己makefile肯定能过关了)

跟我一起MAKEFILE     陈皓 概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成

Ethan_Novice的专栏 5168

跟我一起MakeFile

作者:陈皓 跟我一起MakeFile

u012514113的专栏 635

跟我学makefile

陈皓 概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己makefi

flyingleo1981的专栏 2597

Clover_v5.0_r5122_X64 黑果四叶草引导

Clover_v5.0_r5122_X64 黑果四叶草引导支持macOS Big Sur。折腾的小伙伴记得备份。

2000-2021中国海关数据库进出口贸易数据整合版

2000-2021中国海关数据库进出口贸易数据全整合版2000-2015数据变量包括:年份、截止日期、进出口分类代码、进出口分类名称、HS商品编码、HS商品名称、金额_美元、数量、价格、经营单位代码、经营单位名称、经营单位地址、电话、传真、邮编、电子邮件、联系人、产消地区名称、企业性质代码、企业性质名称、起运国或目的国代码、起运国或目的国名称、海关口岸名称、贸易方式代码、贸易方式名称、运输方式代码、运输方式名称、中转国代码、中转国名称、数量单位代码、数量单位名称2016由于统计规则的改变,变量包括:年份、截止日期、进出口分类代码、进出口分类名称、HS商品编码、HS商品名称、金额_美元、经营单位代码、经营单位名称、产销国代码、产销国名称、贸易方式代码、贸易方式名称(2016年所有的版本不带“数量”变量,若出现该变量请注意甄别数据真假)2017-2021.3数据变量包括:商品编码、商品名称、贸易伙伴编码、贸易伙伴名称、贸易方式编码、贸易方式名称、注册的编码、注册的名称、第一数量、第一计量单位、第二数量、第二计量单位、进出口金额、进出口类型、币制、年

上一篇: C++自带的古老诅咒
下一篇: 程序员批注《语言学教程》——第一章 语言学导论
Sera_ph
博客等级 码龄14年 35粉丝 11原创
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值