正版资源王利涛 -嵌入式工程师自我修养系列教程:Linux三剑客
嵌入式开发里绕不开的一件事:代码最终要跑在 Linux 环境下,而支撑这套环境的底层工具并不神秘,只是大部分人没系统拆过。王利涛这套「Linux 三剑客」课程(配套「C语言那些事儿」模块)走的是把 GCC、Make、GDB 这三样东西从命令行用法讲到工程化配置的路线,属于典型的"看目录就知道要覆盖哪
嵌入式开发里绕不开的一件事:代码最终要跑在 Linux 环境下,而支撑这套环境的底层工具并不神秘,只是大部分人没系统拆过。王利涛这套「Linux 三剑客」课程(配套「C语言那些事儿」模块)走的是把 GCC、Make、GDB 这三样东西从命令行用法讲到工程化配置的路线,属于典型的"看目录就知道要覆盖哪些盲区"的类型。
这门课到底在讲哪三样东西
所谓三剑客,指的是编译、构建、调试三个环节的核心工具:GCC 负责把 C 源码变成可执行文件,Make/Makefile 负责多文件工程的自动化构建,GDB 负责运行时排查。课程没有把这三者拆成互不相关的独立章节,而是沿着"写代码—编译—组织工程—定位问题"的实际链路推进,这一点对需要自己搭构建环境的嵌入式开发者比较关键。
同时课程前置的 C 语言部分不是简单复习语法。比如运算符章节会细分到位运算、算术运算、位逻辑运算,字符串输入输出单独成节,变量的存储类型、volatile 关键字也各自拆出来讲。这些内容在嵌入式里不是纸面知识——volatile 直接关系到寄存器读写和编译器优化行为,存储类型关系到内存布局,属于写驱动和底层代码必须明确的点。
技术栈与内容侧重
- 语言层:C 语言的完整语义梳理,重点落在指针、运算符优先级、存储类型、关键字这类容易埋坑的地方。
- 工具链层:GCC 的编译流程与常用选项,理解预处理、编译、汇编、链接各阶段产物。
- 构建层:Makefile 的规则、变量、依赖关系,以及如何组织一个可维护的工程。
- 调试层:GDB 的断点、单步、变量查看、调用栈分析,配合编译选项调试符号一起用。
- 工程实践:从单个源文件到手动写安装包,串起"程序怎么变成可交付物"的完整过程。
适合拿来对照实践的部分
这套资料更适合"边看边敲"而不是纯看。GCC 和 Makefile 的内容看视频时很容易产生"我懂了"的错觉,但真正写一个多目录、多目标的 Makefile,依赖顺序和变量展开的细节会立刻暴露理解深度。同样,GDB 的调试套路必须在真实崩溃或者段错误现场演练,光记命令没用。
C 语言部分的存储类型、volatile、位运算这些内容,建议对照着反汇编或内存布局去验证。比如自己写一段访问硬件寄存器的伪代码,关掉优化和打开优化各编译一次,观察生成的汇编差异,比单纯记结论有效得多。
一份可参考的自学路径
- 先过一遍 C 语言那些事儿的运算与关键字模块,重点抓位运算、存储类型、volatile 三块。
- 进入 GCC 部分时,手动执行预处理、编译、汇编、链接的每一步命令,看中间文件长什么样。
- Makefile 部分从单文件 Makefile 开始,逐步加多源文件、多目标、条件编译,每加一层都自己重写一遍。
- GDB 部分配合上面写出来的程序调试,制造空指针、数组越界等典型错误,练熟调用栈和内存查看。
- 最后用制作安装包那一节收尾,把"源码到可分发程序"的完整流程走一遍。
获取与使用建议
资料包提供的是成体系的视频与源码,适合放在本地按主题分段消化,而不是一次刷完。建议按上面路径拆成几轮:第一轮只求跑通,第二轮重写 Makefile 和调试脚本,第三轮把 C 语言里那几个关键字对照反汇编再确认一遍。工具链和构建系统这类知识,复用价值在于你以后能直接把这套 Makefile 结构和调试流程迁移到实际项目里,而不是记住某条命令。
王利涛 -嵌入式工程师自我修养系列教程:Linux三剑客
从基础到进阶,全面掌握C语言与Linux环境
编辑点评
本教程系统深入,从C语言基础到Linux环境下的应用,适合初学者和进阶者。
⭐ 编辑推荐
王利涛老师带你系统学习C语言,掌握Linux环境下的编程技巧,成为嵌入式工程师。
✨ 课程亮点
课程目录
C语言那些事儿86 集
- 6-4 字符串输入输出函数.mp4 [51.2 MB]
- 5-6 位逻辑运算符.mp4 [143.4 MB]
- 8-6 变量的存储类型.mp4 [126.5 MB]
- 1-1 你真的了解C语言吗.mp4 [182.7 MB]
- 2-7 制作自己的第一个程序安装包.mp4 [46.2 MB]
- 14-2 文件的打开与关闭.mp4 [47.2 MB]
- 5-3 璧嬪€艰繍绠楃.mp4 [56.0 MB]
- 8-11 库函数基础.mp4 [96.6 MB]
- 10-3 指向数组的指针.mp4 [148.6 MB]
- 5-10 一些容易出错的优先级.mp4 [25.6 MB]
- 5-9 C语言的序列点(C99).mp4 [99.6 MB]
- 10-1 指针的基本概念.mp4 [257.4 MB]
- 8-5 变量的链接属性.mp4 [35.0 MB]
- 2-3 计算机编程语言的发展.mp4 [65.4 MB]
- 10-10 const关键字修饰指针.mp4 [37.4 MB]
- 12-2 宏定义.mp4 [109.0 MB]
- 10-5 指针数组.mp4 [58.6 MB]
- 9-3 字符数组与字符串.mp4 [67.1 MB]
- 2-1 开发环境安装及使用.mp4 [138.9 MB]
- 8-12 开发自己的函数库.mp4 [117.7 MB]
- 2-5 程序到底是怎么运行的?.mp4 [32.6 MB]
- 6-5 printf家族其它函数.mp4 [57.6 MB]
- 7-1 结构化程序设计和流程图.mp4 [41.5 MB]
- 4-5 甯冨皵绫诲瀷_Bool(C99).mp4 [36.9 MB]
- 2-6 程序安装原理及过程分析.mp4 [29.4 MB]
- 4-4 绫诲瀷杞崲.mp4 [85.5 MB]
- 10-7 指向指针的指针.mp4 [113.6 MB]
- 12-3 一些预定义的宏.mp4 [43.3 MB]
- 3-5 数据在内存中的表示.mp4 [180.6 MB]
- 9-1 数组的基本概念.mp4 [223.0 MB]
- 8-3 函数的嵌套与递归.mp4 [58.2 MB]
- 11-5 共用体.mp4 [91.1 MB]
- 8-4 变量的作用域.mp4 [88.7 MB]
- 7-4 循环结构程序设计.mp4 [93.6 MB]
- 14-1 文件的基本概念.mp4 [158.2 MB]
- 3-4 二进制计数制及和其它进制转换.mp4 [87.7 MB]
- 13-2 动态内存申请函数.mp4 [68.1 MB]
- 4-1 整型类型数据.mp4 [123.2 MB]
- 13-3 内存泄露与野指针.mp4 [105.2 MB]
- 11-6 枚举.mp4 [46.3 MB]
- 2-4 可执行程序是怎么生成的?.mp4 [125.3 MB]
- 4-3 浮点型数据.mp4 [63.7 MB]
- 11-3 指向结构体的指针.mp4 [112.4 MB]
- 9-2 浜岀淮鏁扮粍.mp4 [94.5 MB]
- 1-3 C语言及标准的发展过程.mp4 [156.5 MB]
- 11-9 复合字面量.mp4 [29.2 MB]
- 10-11 指针数组作为main函数参数.mp4 [69.2 MB]
- 9-6 鍙橀暱鏁扮粍.mp4 [43.7 MB]
- 7-3 选择程序设计.mp4 [120.6 MB]
- 1-2 学习C语言的重要性.mp4 [64.5 MB]
- 5-1 运算符与表达式.mp4 [154.4 MB]
- 8-8 多个C源文件组织方式.mp4 [105.0 MB]
- 14-4 文件状态监测函数.mp4 [42.6 MB]
- 11-7 使用typedef定义数据类型.mp4 [57.4 MB]
- 2-2 计算机基本原理介绍.mp4 [115.9 MB]
- 10-9 函数指针.mp4 [44.7 MB]
- 10-6 指向字符串的指针.mp4 [38.9 MB]
- 11-4 结构体函数.mp4 [20.3 MB]
- 6-1 格式输出函数printf.mp4 [95.2 MB]
- 6-3 字符输入输出函数.mp4 [55.7 MB]
- 4-6 澶嶆暟绫诲瀷_Complex(C99).mp4 [25.1 MB]
- 3-6 程序调试技巧.mp4 [74.8 MB]
- 12-5 条件编译.mp4 [55.0 MB]
- 11-8 结构体成员为柔性数组(C99).mp4 [39.2 MB]
- 8-9 内部函数与外部函数.mp4 [33.1 MB]
- 14-5 文件的随机读写.mp4 [69.3 MB]
- 9-4 字符串处理函数.mp4 [58.7 MB]
- 13-1 动态内存管理.mp4 [79.7 MB]
- 4-2 字符型数据.mp4 [139.6 MB]
- 12-1 预处理的基本概念.mp4 [64.8 MB]
- 8-1 函数的基本概念.mp4 [139.2 MB]
- 3-2 标识符与关键字.mp4 [105.4 MB]
- 1-5 C语言为什么这么难学?.mp4 [31.6 MB]
- 11-1 结构体的基本概念.mp4 [151.2 MB]
- 10-2 指向变量的指针.mp4 [132.7 MB]
- 12-6 其它预处理命令.mp4 [121.7 MB]
- 9-5 数组作为函数的参数.mp4 [108.4 MB]
- 10-8 指向函数的指针.mp4 [40.7 MB]
- 7-2 顺序程序设计.mp4 [30.6 MB]
- 10-4 指向二维数组的指针.mp4 [83.0 MB]
- 3-1 hello world绋嬪簭鍒嗘瀽.mp4 [100.1 MB]
- 12-4 头文件包含.mp4 [82.6 MB]
- 10-12 restrict关键字修饰指针.mp4 [44.8 MB]
- 6-2 格式输入函数scanf.mp4 [84.5 MB]
- 14-3 文件的读写函数.mp4 [105.7 MB]
- 11-2 结构体数组.mp4 [61.6 MB]
专题1:软件调试理论基础7 集
- 5.断点和单步是怎么实现的?.mp4 [57.7 MB]
- 4.debug文件和release文件的区别.mp4 [106.9 MB]
- 7.JTAG和Jlink调试原理及区别.mp4 [51.7 MB]
- 1.什么是软件调试?.mp4 [140.4 MB]
- 2.常用的软件调试方法.mp4 [42.0 MB]
- 6.仿真器调试原理.mp4 [36.1 MB]
- 3.常见的错误类型.mp4 [70.2 MB]
专题3:Linux内核日志打印技巧8 集
- 10.使用proc文件系统与内核交互.mp4 [103.0 MB]
- 1.内核实验环境介绍.mp4 [99.2 MB]
- 8.strace命令.mp4 [129.0 MB]
- 5.printk实现机制分析(三)--printk打印配置.mp4 [70.1 MB]
- 2.printk打印数据格式与打印等级.mp4 [72.1 MB]
- 3.printk实现机制分析(一)--控制台、终端和串口之间的关系.mp4 [100.4 MB]
- 6.打印函数调用栈.mp4 [65.3 MB]
- 4.printk实现机制分析(二)--内核实现和日志系统.mp4 [132.0 MB]
专题2:printf函数打印高阶技巧(免费)6 集
- 2.打印文件名、函数名、行号.mp4 [25.9 MB]
- 5.打印等级控制.mp4 [48.5 MB]
- 1.输出重定向.mp4 [116.2 MB]
- 3.打印缓冲问题.mp4 [39.0 MB]
- 4.打印开关控制.mp4 [27.1 MB]
- 1.输出重定向_片头.mp4 [169.7 MB]
使用QEMU搭建u-boot+linux+NFS开发环境9 集
- 2.搭建嵌入式开发基本环境.mp4 [166.4 MB]
- 7.挂载NFS文件系统.mp4 [37.0 MB]
- 3.QEMU安装及仿真开发板介绍.mp4 [131.4 MB]
- 1.为什么要使用QEMU学习嵌入式开发.mp4 [112.2 MB]
- 8.完善NFS根文件系统.mp4 [49.1 MB]
- 6.使用u-boot引导Linux内核镜像.mp4 [155.6 MB]
- 4.编译Linux内核镜像和dtb文件.mp4 [63.7 MB]
- 5.使用busybo制作根文件系统.mp4 [161.0 MB]
- 9.在开发板上运行应用和驱动程序.mp4 [32.9 MB]
C语言实战之学生成绩管理系统12 集
- 15.安装安装包制作及发布.mp4 [65.1 MB]
- 8.编码(2)之数据存储模块.mp4 [99.6 MB]
- 12.编码(6)之成绩统计.mp4 [25.7 MB]
- 2.软件开发基本流程.mp4 [136.4 MB]
- 7.编码(1)之工程创建、成绩打印.mp4 [106.7 MB]
- 13.编码(7)之人机交互菜单和模块集成.mp4 [66.1 MB]
- 9.编码(3)之成绩添加、成绩删除.mp4 [192.0 MB]
- 3.可行性分析及项目开发计划.mp4 [24.8 MB]
- 10.编码(4)之成绩查询.mp4 [48.3 MB]
- 1.课程及项目简介.mp4 [134.6 MB]
- 14.代码优化及测试流程.mp4 [112.7 MB]
- 11.编码(5)之成绩修改.mp4 [79.9 MB]
Makefile工程实践14 集
- 3.7 支持静态库的生成和使用.mp4 [77.9 MB]
- 2.6 库的生成和使用:动态库、静态库.mp4 [70.2 MB]
- 3.8 支持动态库的生成和使用.mp4 [83.3 MB]
- 3.9 支持第三方静态库、动态库的使用.mp4 [27.8 MB]
- 3.4 使用目录管理目标文件.mp4 [97.0 MB]
- 1.1 Makefile鍩烘湰姒傚康.mp4 [128.8 MB]
- 3.3 使用目录管理源文件.mp4 [73.7 MB]
- 3.5 使用目录管理依赖关系文件.mp4 [92.8 MB]
- 3.1 构建MP3项目工程.mp4 [43.9 MB]
- 3.6 使用目录管理头文件.mp4 [24.7 MB]
- 3.2 自动添加目标头文件的依赖.mp4 [79.2 MB]
- 1.2 程序的编译和链接.mp4 [77.1 MB]
- 3.10 支持软件的安装与卸载.mp4 [25.6 MB]
- 2.2 Makefile基本组成单元:规则.mp4 [107.2 MB]
零基础玩转Linux+Ubuntu22 集
- 4.4 FTP服务器配置及使用.mp4 [83.8 MB]
- 3.5 进程管理.mp4 [80.7 MB]
- 3.4 文件访问权限.mp4 [81.5 MB]
- 2.2 Linux高级命令简单使用.mp4 [75.3 MB]
- 2.5 Make工程管理.mp4 [87.7 MB]
- 2.3 shell脚本入门.mp4 [71.6 MB]
- 3.7 制作自己的deb软件安装包.mp4 [61.1 MB]
- 3.9 使用wine安装Windows应用软件.mp4 [48.6 MB]
- 3.8 使用apt安装卸载软件.mp4 [62.8 MB]
- 4.3 SSH远程登录.mp4 [87.1 MB]
- 4.2 Samba服务器配置及使用.mp4 [62.2 MB]
- 1.2 Linux和Ubuntu的关系.mp4 [31.7 MB]
- 1.1 课程简介及Linux学习路线介绍.mp4 [123.6 MB]
- 3.3 用户账户管理.mp4 [126.0 MB]
- 2.4 vi及vim入门.mp4 [102.7 MB]
- 2.1 linux基本命令使用.mp4 [176.5 MB]
- 4.1 NFS服务器配置及使用.mp4 [48.8 MB]
- 3.1 什么是环境变量.mp4 [148.3 MB]
- 1.4 X-window鍜屾闈㈢幆澧僈DE銆丟NOME.mp4 [33.7 MB]
- 3.2 文件系统管理.mp4 [91.6 MB]
- 1.3 ubuntu16.04安装以及新特性介绍.mp4 [101.9 MB]
- 3.6 源码软件包的编译、安装、卸载.mp4 [131.6 MB]
vim从入门到精通13 集
- 5.文本插入操作.mp4 [32.5 MB]
- 13.分页与折叠栏.mp4 [56.2 MB]
- 12.编辑多个文件.mp4 [51.4 MB]
- 2.vim工作模式简介.mp4 [53.9 MB]
- 6.文本删除操作.mp4 [50.3 MB]
- 9.组合命令使用.mp4 [27.0 MB]
- 7.文本复制、剪切与粘贴.mp4 [35.1 MB]
- 10.文本查找与替换.mp4 [54.0 MB]
- 3.鍏夋爣绉诲姩.mp4 [90.1 MB]
- 8.文本修改与替换.mp4 [20.9 MB]
- 1.课程介绍、vim简介及安装.mp4 [56.8 MB]
- 15.vim配置与插件介绍.mp4 [26.1 MB]
- 11.修改的撤销、重做与保存.mp4 [32.8 MB]
Git零基础实战45 集
- 2.2 在Linux下安装git.mp4 [53.6 MB]
- 4.3 git引用:分支和标签.mp4 [90.5 MB]
- 8.6 添加新的远程版本库.mp4 [22.1 MB]
- 7.6 挑选合并.mp4 [34.5 MB]
- 7.9 分支修改储藏.mp4 [31.5 MB]
- 8.4 远程分支的基本操作.mp4 [81.4 MB]
- 6.6 给提交重新排序:git rebase.mp4 [67.5 MB]
- 10.1 管理本地文件,防止隐私泄露.mp4 [46.3 MB]
- 6.5 Git缃綅锛歡it reset.mp4 [52.2 MB]
- 5.4 忽略指定格式的文件.mp4 [41.3 MB]
- 3.2 git基本流程介绍.mp4 [59.3 MB]
- 7.11 一个脱离了组织的提交:no branch.mp4 [28.9 MB]
- 7.7 分支衍合.mp4 [57.8 MB]
- 10.2 发起一个公开项目.mp4 [68.3 MB]
- 5.1 文件管理:文件添加及提交.mp4 [47.5 MB]
- 3.3 分支和标签简单使用.mp4 [23.6 MB]
- 7.2 分支的基本使用.mp4 [59.1 MB]
- 3.1 git仓库创建及配置.mp4 [77.3 MB]
- 10.4 搭建本地git服务器.mp4 [148.1 MB]
- 5.6 宸紓姣旇緝git diff.mp4 [43.0 MB]
- 6.4 鎻愪氦淇敼锛歡it revert.mp4 [61.4 MB]
- 5.2 文件删除.mp4 [63.9 MB]
- 5.5 撤销本地仓库的修改.mp4 [43.5 MB]
- 7.5 压合合并提交.mp4 [33.5 MB]
- 6.7 将多个提交合并为一个提交.mp4 [23.4 MB]
- 6.8 将一个提交分解为多个提交.mp4 [28.8 MB]
- 7.3 分支的合并.mp4 [20.5 MB]
- 10.3 发起一个私人项目.mp4 [55.3 MB]
- 6.1 commit对象与存储.mp4 [25.3 MB]
- 7.1 分支的基本概念.mp4 [42.8 MB]
- 5.7 压缩仓库.mp4 [42.7 MB]
- 7.8 分支合并与衍合的区别.mp4 [66.3 MB]
- 8.1 远程仓库的概念.mp4 [59.5 MB]
- 5.3 文件重命名.mp4 [20.0 MB]
- 6.3 提交查找:git grep.mp4 [26.8 MB]
- 7.10 恢复已删除分支的提交.mp4 [50.1 MB]
- 8.3 远程仓库的基本操作.mp4 [64.3 MB]
- 6.9 恢复隐藏的历史.mp4 [65.4 MB]
- 4.1 Git基本概念:工作区、暂存区和版本库.mp4 [65.3 MB]
- 8.2 使用github代码托管.mp4 [78.7 MB]
- 2.1 在Windows下面安装git.mp4 [27.0 MB]
- 9.1 标签的远程操作.mp4 [36.7 MB]
- 6.2 查看提交历史:git log.mp4 [64.8 MB]
- 7.4 解决合并冲突.mp4 [82.9 MB]
- 8.5 远程分支和本地分支的区别.mp4 [49.0 MB]
vim从入门到精通-第2季13 集
- 7.cscope查找工具的使用.mp4 [55.5 MB]
- 14.保存会话信息.mp4 [82.2 MB]
- 10.C语言插件的使用.mp4 [126.5 MB]
- 8.使用quickfix显示错误列表和跳转.mp4 [124.8 MB]
- 6.使用Winmanager插件显示文件列表窗口.mp4 [57.0 MB]
- 4.在函数、变量、宏之间来回跳转.mp4 [83.9 MB]
- 0.vim演示视频.mp4 [13.1 MB]
- 3.vim脚本语法.mp4 [103.7 MB]
- 1.vim配置与配置文件.mp4 [172.8 MB]
- 12.C文件和头文件快速切换.mp4 [21.9 MB]
- 2.鎸夐敭鏄犲皠.mp4 [145.0 MB]
- 5.使用taglist显示函数、宏、结构体列表.mp4 [60.6 MB]
- 13.书签的使用.mp4 [19.6 MB]
Makefile工程实践(第2季)8 集
- 10.软件打包与发布.mp4 [74.6 MB]
- 7.使用libtool构建动态链接库.mp4 [121.9 MB]
- 4.shallow目录结构的Makefile.mp4 [66.7 MB]
- 5.头文件管理、路径指定、对依赖关系的影响.mp4 [140.3 MB]
- 3.使用变量、宏生成flat目录Makefile.mp4 [96.7 MB]
- 6.构建目标文件.mp4 [46.8 MB]
- 9.deep目录结构的makefile、库的多目录构建.mp4 [66.7 MB]
- 8.使用第三方静态库、动态库.mp4 [57.9 MB]
Linux三剑客配套代码PPT1 条
- Linux三剑客配套代码PPT.exe [72.2 MB]
适合人群
- C语言初学者
- Linux环境开发者
- 嵌入式工程师
🎯 学习收获
- 掌握C语言基础
- 精通Linux编程
- 提升嵌入式开发能力
🎉 祝您学习愉快!




