玩转Makefile | 系列综述

简介: 玩转Makefile | 系列综述


1. 前言


Makefile是一个神奇的东西,有了它只需一个make命令就可以让源文件按你的规则编译成你所想要的程序。非常简单,方便。


对于Keil,VS等IDE,一般只需点一下绿色的三角按钮,就可以完成编译。但具体内部是怎么实现编译的?改动文件后如何只编译改动的文件?学完makefile就可以掌握这些东西,从而对系统编程会有更深层次的理解。


Makefile的内容也非常之多,但常用的知识也不是很多。所谓时间花在刀刃上,与其过分追求枝叶,不如先把握好主枝干。当主枝干学得滚瓜烂熟之后再去学那些比较偏的知识也不迟,或者等用到的时候再度娘一下也无妨。


2. 书籍推荐


  1. 陈皓的《跟我一起写makefile》
  2. gnu make manual
  3. managing projects with gnu make, 3rd

这里尤为推荐陈皓的《跟我一起写makefile》,写的很通俗易懂。但就是内容多了一些,看完需要花一定的时间。


3. 系列文章简介


玩转Makefile | 一文入门Makefile

--> 本文主要介绍Makefile的基础知识,可以先掌握这些基础知识再去延伸其它内容。


玩转Makefile | 四步教你从零开始写Makefile

--> 目前有现成工具可以自动写Makefile,但对于一些中小项目来说自动导出的Makefile也非常长,不易于理解与维护。本文从零开始教你一步步编写Makefile,从此妈妈再也不用担心我不会写Makefile了。


玩转Makefile | 企业项目Makefile实例

--> 本文介绍了企业里一个Makefile的常见形式,掌握了这个案例,基本可以达到企业用人标准了。


玩转Makefile | 编译有共用文件的多个程序

--> 本文介绍了Makefile的另一个场景——具有共用文件的多个程序,这种场景在企业项目里也相当常见,需掌握。


玩转Makefile | 一次编译多个目标

--> 本文介绍的这个场景不太适用企业项目,但在自己平时练习的时候可以用得上。

目录
相关文章
|
传感器 监控 物联网
golang开源的可嵌入应用程序高性能的MQTT服务
golang开源的可嵌入应用程序高性能的MQTT服务
640 3
|
传感器 网络协议 物联网
Linux MQTT通信:实现轻量级物联网传输协议
MQTT(Message Queuing Telemetry Transport)是一种轻量级的物联网传输协议,专门设计用于低带宽、不稳定网络环境下的传感器和物联网设备通信。本文将深入探讨Linux环境下如何实现MQTT通信,介绍MQTT协议的基本原理、常用MQTT库以及如何在Linux系统中编写MQTT客户端和服务器端程序。
1728 0
|
消息中间件 Kubernetes Kafka
微服务从代码到k8s部署应有尽有系列(八、各种队列)
微服务从代码到k8s部署应有尽有系列(八、各种队列)
|
12月前
|
算法 NoSQL 数据库
ID生成服务系列(二)
ID生成服务系列(二)
|
编译器 Linux C语言
Makefile实战论(一)
Makefile实战论(一)
|
API Go 数据安全/隐私保护
go-zero微服务框架的静态文件服务
【8月更文挑战第7天】`go-zero` 微服务框架支持多种静态文件服务实现方式。常用方法是利用 `Go` 标准库 `http.FileServer`。通过设置静态文件根目录并使用 `http.StripPrefix` 去除路径前缀,能确保 `/static/` 开头的请求正确返回文件。此外,结合 `go-zero` 的路由机制可更灵活地控制静态文件服务,例如仅在特定 API 路径 `/api/static` 下提供服务,从而实现精细化访问控制。
320 0
|
存储 缓存 JSON
详解HTTP四种请求:POST、GET、DELETE、PUT
【4月更文挑战第3天】
64914 3
详解HTTP四种请求:POST、GET、DELETE、PUT
|
存储 算法 数据库
细数各大唯一id生成算法
一、序言几乎所有的业务系统,都有生成一个唯一id的需求,例如: 1.订单号2.活动id3.消息id这个记录标识往往就是数据库中的唯一主键,也可以作为唯一索引。这个记录标识上的查询,往往又有分页或者排序的业务需求,例如: (1)拉取最新的一页的聊天记录:select * by message_id/ order by gmt_create/ limit 100 (2)拉取最近的一百条流水:selec
683 0
细数各大唯一id生成算法
|
Linux
CentOS安装NVidia驱动提示kernel source path问题
CentOS安装NVidia驱动提示kernel source path问题
957 0