很多人写 C 或 C++ 的日常是这样的:代码在编辑器里敲完,点一下运行按钮,能跑就交差,跑不通就来回加打印语句。这套习惯放到 Linux 服务器上会立刻失效——没有 IDE 的按钮,编译报错是一屏陌生英文,程序崩溃只剩一句 Segmentation fault。这门课补的正是这一段:从源文件到可执行文件中间发生了什么,以及出问题时你手里有哪些工具。
先确认自己缺的是哪一块
如果你满足下面任意一条,这节课的内容对你就是刚需,而不是"顺便看看":
- 知道
gcc能把 .c 变成可执行文件,但说不清预处理、编译、汇编、链接四个阶段各做了什么,报错信息里出现 ld、collect2 就发懵。 - 写过 Makefile,但只是照抄模板;遇到多文件、多目录、需要链接第三方库时不知道怎么下手。
- 程序在本地跑得好,一上 Linux 就 core dump,只会重启,不会用调试器定位到具体哪一行。
- 听说过条件编译、宏定义、头文件搜索路径,但没系统用过,改配置全靠猜。
- 接手了别人的 C/C++ 项目,编译脚本和构建命令看不懂,不敢动。
反过来,如果你已经能熟练写 CMake、会用 GDB 调试多线程死锁,这节课对你的增量有限,可以直接跳过。
课程实际覆盖的三件事
一、编译链路:gcc 与 g++
课程从 GNU 工具链和自由软件的背景讲起,这部分不是凑时长,而是解释清楚为什么 Linux 下编译工具长这样。接着落到实际用法:gcc 与 g++ 的分工差别、常用编译选项、预处理阶段到底展开成什么、头文件与库文件的搜索路径规则、多文件编译与链接的顺序问题。这些内容的价值在于,你以后再看到一长串编译命令,能逐段读懂每一部分在干什么,而不是整段复制。
二、调试:gdb
调试部分是这个课程里最不容易自学的环节。断点、单步、查看变量、查看调用栈、attach 到正在运行的进程——这些操作在没有指导的情况下,光靠 man 手册很难建立手感。课程按操作场景组织,不是把命令罗列一遍。学完之后你应该能对着一个崩溃的程序,说出它是怎么走到崩溃那一行的。
三、把工具用进真实工作流
单独的编译命令和调试点会了,还需要串成流程:改代码、编译、跑、发现问题、调试、再编译。课程中的示例围绕这个循环展开,配套练习也是按"先复现问题,再定位,再修复"的顺序设计,而不是给你一段正确代码让你照着敲。
建议的练习方式
- 不要只看视频。每学一个编译选项,自己写一个最小的 .c 文件验证它的效果,尤其是 -D、-I、-L、-l 这几个容易混的。
- 故意写错代码。把函数声明和定义写得不一致、故意漏掉头文件、故意让指针越界,然后观察编译器和调试器给出的信息。认识错误信息比认识正确写法更有用。
- 用调试器而不是打印语句去查一次真实问题。哪怕只是数组越界这种小 bug,也强迫自己走一遍 gdb 的流程,把"加 printf"的惯性改掉。
- 找一个开源的小型 C 项目,尝试不看它的构建脚本,自己写出编译命令跑起来。
看完应该能回答的问题
用这几个问题自查,能答上来就说明这一遍没白学:
- 从 .c 到可执行文件,中间经过哪几步,每一步的输入输出分别是什么?
- 链接时报 undefined reference,通常有哪几种原因,怎么逐一排查?
- gcc 和 g++ 在编译 C++ 代码时的区别到底在哪,只用 gcc 会出什么问题?
- 程序崩溃后,怎么从 core 文件或现场把调用栈还原出来?
- 怎么给一个已经在运行的进程挂上调试器?
这些问题的答案不依赖任何特定发行版,也不依赖具体项目,属于换到哪台 Linux 机器上都能用的基础能力。
Linux编程:gcc g++ gdb零基础入门Linux C/C++ 编译器调试
从零开始,掌握Linux下C/C++编程与调试
编辑点评
系统讲解gcc、g++、gdb工具,适合初学者快速入门,掌握Linux环境下的C/C++编程和调试技巧。
⭐ 编辑推荐
本课程深入浅出地讲解Linux编程环境下的gcc、g++、gdb编译器和调试器,从基础到进阶,助你成为Linux编程高手。
课程亮点
课程目录
Linux编程之gcc g++ gdb 零基础入门 Linux C C++ 编译器 调试器说明.png [493.5 KB] 5 gcc预处理-D选项.mp4 [42.9 MB] 18 gdb调试器命令使用详解(一).mp4 [166.0 MB] 2 gcc编译器简介与安装.mp4 [33.3 MB] 22 gdb使用gdbserver进行远程调试.mp4 [32.4 MB] 1 GNU操作系统与自由软件简介.mp4 [17.4 MB] 21 gdb附加到进程进行调试.mp4 [29.7 MB] 4 gcc编译链接的流程.mp4 [63.4 MB] 14 gcc编译器优化级别-O选项.mp4 [60.8 MB] 3 gcc编译第一个hello程序.mp4 [39.8 MB] 13 gcc编译器指定C标准-std选项.mp4 [81.4 MB] 19 gdb调试器命令使用详解(二).mp4 [111.7 MB] 16 g++编译器的相关选项.mp4 [35.8 MB] 6 gcc预处理-M -MD -MF选项.mp4 [88.6 MB] 12 gcc将选项传递给链接器-Wl_选项.mp4 [54.2 MB] 8 gcc诊断颜色-fdiagnostics-color选项.mp4 [25.1 MB] 9 gcc搜索头文件目录-I选项.mp4 [37.9 MB] Code.rar [100.6 KB] 20 gdb调试多线程详解.mp4 [105.2 MB] 7 gcc编译警告-Wall选项.mp4 [88.0 MB] 17 gdb调试器简介与安装.mp4 [36.6 MB] 15 gcc编译器调试-g选项.mp4 [44.6 MB] 11 gcc链接库-l与库搜索目录-L选项.mp4 [67.9 MB] 10 gcc生成动态库-fPIC -shared选项.mp4 [24.5 MB] 23 gdb 调试core文件详解.mp4 [28.4 MB]
适合人群
- Linux编程初学者
- C/C++开发者
- 系统运维人员
学习收获
祝您学习愉快!
学有所成,前程似锦!





![大疆维修,无人机维修教程[66.30GB]](/_next/image?url=https%3A%2F%2Fwww.itzhibei.com%2Fapi%2Fuploads%2Fb6a69810-862f-479c-a529-d66880073ebc.jpg&w=1920&q=75)
