【Linux】 开发工具(Makefile、git、cgdb)解析与对于操作系统的基础认识
目录前言Part1. MakefilePart1.1. 基础语法Part1.2. .PHONYPart1.3. Make增量编译原理Part1.4. 多文件递归编译示例Part1.5. Makefile变量Part1.6. 内置函数Part1.7. 模式规则Part1.8. 完整模板Part2. C语言缓冲区原理Part3. Git常用基础命令Part4. cgdb调试器Part5. 操作系统基础理解Part5.1. 为什么需要内存Part5.2. 数据流动Part5.3. 操作系统四大核心功能Part5.4. 内核态、用户态Part5.5. 操作系统对数据的管理Part6. 结语前言对于开发工具的熟练使用和Linux操作系统的理解是非常重要的来跟随小编的视角来看看吧。lets go!!!!!!!!Part1. MakefilePart1.1. 基础语法目标: 依赖 命令 示例 code: code.c gcc -o code code.c逻辑如果code.c修改过则执行gcc编译生成可执行文件code。Part1.2. .PHONY.PHONY: clean clean: rm -f code1.PHONY声明这是伪目标直接执行命令。2 执行清理make cleanPart1.3. Make增量编译原理make依靠文件修改时间戳判断要不要执行规则1依赖文件更新时间 目标文件更新时间执行编译。2 依赖没有改动多次make输出nothing to be done不会重复编译。3touch filename修改文件的三个时间戳可以欺骗make强制触发编译。Part1.4. 多文件递归编译示例A:A.o gcc A.o -o A A.o:A.s gcc -c A.s -o A.o A.s:A.c gcc -E A.c -o A.smake自上而下扫描递归解析依赖一层层生成中间文件。Part1.5. Makefile变量B code test: echo $(B)•取值语法$(变量名)自动化变量各个变量含义:1$ 当前规则的目标2$^ 全部依赖文件列表3$ 第一个依赖文件命令前加执行命令不在终端打印这条shell命令。例echo linking $^ - $Part1.6. 内置函数1wildcard匹配一批文件SRC : $(wildcard *.c)Part1.7. 模式规则%.o:%.c $(CC) $(CFLAGS) -c $ -o $ //含义任意.o由同名.c编译生成。Part1.8. 完整模板BIN app SRC $(wildcard *.c) OBJ $(SRC:.c.o) CC gcc $(BIN): $(OBJ) $(CC) -o $ $^ %.o:%.c $(CC) -c $ .PHONY:clean clean: rm -f $(BIN) $(OBJ)Part2. C语言缓冲区原理1行缓冲标准输出stdout是行缓冲遇到\n换行才刷新缓冲区打印到屏幕。printf(hello); sleep(3); // 不会立刻打印sleep结束才输出 printf(hello\n); sleep(3); // \n触发刷新立刻打印2fflush(stdout)强制刷新缓冲区不需要换行直接输出内容。3 格式化输出对齐•%xd右对齐占x字符宽度•%-xd左对齐占x字符宽度Part3. Git常用基础命令1git add .# 将所有修改加入暂存区2git status# 查看仓库当前状态3git commit -m 提交描述# 暂存区提交到本地仓库4git push# 推送到远程仓库5git clone 远程仓库地址# 克隆远程仓库到本地p.s.暂存区可以多次修改多次add统一一次commit、push。Part4. cgdb调试器gcc -g test.c -o test cgdb testGDB常用指令表指令功能q退出gdbl列出源代码l 行号从指定行展示源码b 行号设置断点b main在main函数打断点r运行程序c继续运行到下一个断点停下n 单步跳过函数调用s 单步进入函数内部bt打印函数调用栈backtracefinish跑完当前函数返回调用处p 变量名打印变量值info b查看全部断点信息disable 断点编号临时禁用断点enable 断点编号启用断点until 行号直接运行到指定行停下display 变量持续监视变量每次暂停自动打印undisplay 编号取消监视info locals打印当前函数所有局部变量watch 变量变量被修改程序自动停下set var xygdb内部修改变量的值condition 断点号 条件条件断点满足条件才停Part5. 操作系统基础理解Part5.1. 为什么需要内存CPU只能直接读写内存不能直接读写磁盘。磁盘速度很慢CPU运算速度极快内存作为中间高速缓存用来匹配CPU和外设的速度差距。程序运行过程1 可执行文件存放在磁盘。2 运行程序操作系统把程序加载到内存。3CPU从内存读取指令、数据执行。Part5.2. 数据流动磁盘 → 内存 → CPU运算 → 内存 → 网卡(输出外设)发给对方对方网卡接收放入内存处理最后写入磁盘保存。所有外设都不和CPU直接打交道数据必经内存中转。Part5.3. 操作系统四大核心功能1进程管理2内存管理3文件管理4驱动设备管理Part5.4. 内核态、用户态•应用程序跑在用户态不能直接访问硬件、内存、设备。• 想要操作硬件必须调用系统调用陷入内核态由操作系统内核完成硬件操作。•高内聚低耦合上层应用只调用接口底层驱动封装硬件细节。Part5.5. 操作系统对数据的管理操作系统把各式各样来自硬件的数据统一抽象成数据结构完成增删查改。通过结构体描述管理对象进程PCB、文件描述符等保存元信息完成管理。Part6. 结语这篇文章我们认识到了Linux开发工具和操作系统的相关知识接下来小编还会带来更多Linux相关的知识敬请期待~最后祝大家可以春风得意马蹄疾一日看尽长安花最后的最后要是觉得本文还可以的话可以点点赞关注小编一波谢谢大家~

相关新闻

2026 Agentic AI 元年:智能体如何从“聊天机器人“进化为“自主程序员“?MonkeyCode 免费体验

2026 Agentic AI 元年:智能体如何从“聊天机器人“进化为“自主程序员“?MonkeyCode 免费体验

一个深夜,我被自己的"AI 同事"卷到了 凌晨两点,同事老周在群里丢了一张图:一个半小时前他提出的需求,已经跑完测试、部署上线了。我盯着那条消息半天没缓过神——早上还在跟他讨论怎么设计数据库表呢。"这不可能。…

2026/8/24 20:54:33 阅读更多 →
多智能体系统架构设计:外部知识与分层记忆如何赋能AI协同

多智能体系统架构设计:外部知识与分层记忆如何赋能AI协同

1. 项目概述:当需求遇上架构,多智能体协同的破局之路最近在折腾一个挺有意思的项目,核心目标就写在标题里了:Bridging Requirements and Architecture,也就是如何弥合业务需求与系统架构之间的鸿沟。这听起来像是软件工…

2026/8/23 20:13:30 阅读更多 →
数据结构与算法:从核心原理到实战应用,构建高效编程思维

数据结构与算法:从核心原理到实战应用,构建高效编程思维

很多初学者在接触编程时,都会遇到一个共同的困惑:为什么我学会了语法,还是写不出像样的程序?为什么看别人的代码,总觉得那些vector、map、递归、动态规划用得行云流水,自己却连一个简单的数据组织都理不清&…

2026/8/24 20:50:39 阅读更多 →

最新新闻

电力变电站项目安全生产动画怎么做更贴合现场

电力变电站项目安全生产动画怎么做更贴合现场

安全生产动画是变电站建设项目安全文明生产宣教的重要载体,很多电力基建单位做警示教育内容,最头疼就是动画场景脱离施工现场,培训起不到警示效果,长沙尚格影视深度服务国网湖南省电力、湖南省送变电工程,以望城 500kV…

2026/8/25 3:05:37 阅读更多 →
零基础上位机通讯协议精讲:从Modbus报文解析到C#实战

零基础上位机通讯协议精讲:从Modbus报文解析到C#实战

大家好,我是专注于工业自动化与软件开发的技术博主。在“零基础学上位机”系列的前几篇文章中,我们搭建了开发环境,了解了上位机的基本概念。今天,我们将直面一个让无数新手感到困惑,却又无比核心的关卡—— 通讯协议…

2026/8/25 3:05:37 阅读更多 →
构建统一AI集成平台:多模型与Agent的统一管理与实践

构建统一AI集成平台:多模型与Agent的统一管理与实践

在实际企业级应用开发和运维中,我们经常面临一个挑战:如何高效、统一地管理多种不同的生成式AI模型(如GPT、Claude、DeepSeek等)以及自动化任务执行工具(Agent)。每个模型都有自己的API接口、认证方式、计费…

2026/8/25 3:05:37 阅读更多 →
手机屏幕碎了送修前,我先把相册备份到了电脑

手机屏幕碎了送修前,我先把相册备份到了电脑

上个月手机屏幕摔碎了,送去维修店换屏。师傅说要留机两小时,我当时心里就咯噔一下——手机里存着这几年所有的照片,好几千张,换屏期间要刷机、要拆机,万一数据没了怎么办?后来想想,维修之前我根…

2026/8/25 3:05:37 阅读更多 →
市面上支持定制的芯片测试治具供应商整套解决方案

市面上支持定制的芯片测试治具供应商整套解决方案

在芯片测试领域,一套优质的芯片测试治具对于确保芯片性能的准确检测至关重要。随着芯片技术的不断发展,对测试治具的定制化需求也日益增长。本文将介绍市场上支持定制的芯片测试治具供应商的相关信息,并以深圳市鸿怡电子有限公司(…

2026/8/25 3:05:37 阅读更多 →
基于大模型的AI Agent构建体育决策支持系统实战指南

基于大模型的AI Agent构建体育决策支持系统实战指南

当一支职业足球队在转会窗口前夜,面对一份关于某位球员的300页球探报告、过去三个赛季的伤病数据、社交媒体情绪分析以及一份复杂的财务模型时,教练组和数据分析师该如何在48小时内做出是否签下他的最终决定?传统方式可能是通宵达旦的会议、充…

2026/8/25 3:04:36 阅读更多 →

日新闻

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/25 0:00:34 阅读更多 →
Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG 【免费下载链接】transformers.js State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 项目地址: https:/…

2026/8/25 0:00:34 阅读更多 →
数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

数学建模竞赛论文写作指南:从模型构建到学术表达的核心技能

1. 项目概述:从“会做”到“会写”的竞赛核心跃迁“全国大学生数学建模竞赛”,这个名字对理工科学生来说,分量极重。每年,无数团队在三天三夜的时间里,为一个开放性问题绞尽脑汁,从建立模型、求解算法到编程…

2026/8/25 0:00:34 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/24 20:22:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →