这门课解决什么问题,值不值得学
在纯 Go 开发里,很多基础库已经能满足日常业务。但一旦遇到复用历史 C 代码、对接底层系统接口、调用 libcurl 或 FFmpeg 这类成熟 C 库时,纯 Go 就会卡壳。这门课针对的就是这个场景:教你怎么用 cgo 把 C 代码粘进 Go 工程。它不教 C 语言语法,重点放在“套路”上——怎么写第一段 cgo、怎么加载头文件和 C 源文件、怎么用 makefile 统一构建、怎么让 Go 和 C 互相传字符串。如果你的工作里偶尔需要调一个 C 库、或者要处理 Go 原生生态覆盖不到的底层能力,这门课能帮你把门槛踩平。但如果你目前只做纯 Web 业务、短期不会碰 C 库,就不必急着学,优先级可以往后放。
适合什么基础,建议先看哪几块
课程默认你能看懂基础 Go 语法,能独立写函数、用 struct,不需要你是 C 语言高手,但至少看到指针和字符串不会发懵。资料节奏是先讲机制再练手,建议先看前两讲,把 cgo 的基本写法和加载 h 文件、c 文件的方式跑通;接着直接跳到 makefile 那一讲,因为真实项目里不会手动敲命令,统一构建才是常态。穿插的 FFmpeg 调用那一讲值得单独看,它演示了怎么把一个复杂第三方 C 库接进来,套路和 libcurl 那讲是同一套,但场景更典型。C 调 Go 函数那讲不要跳,它和 Go 调 C 是双向能力,很多回调场景都靠它。
资料怎么配合练习,学完能独立做什么
资料里有几个小练习,建议不要只看视频,而是按顺序动手做:先做获取主机名,练最简单的 C 函数调用;再做编译 so 文件并用 cgo 调用,理解动态库这条路;最后做文件长度和文件内容读取,把字符串传递和内存处理走一遍。练习之间是递进的,第一个跑通了再碰第二个,不要跳着做。每个练习都建议自己写一遍 makefile,而不是直接用现成的。学完之后,你应该能独立完成这几件事:把一个已有的 C 源文件接进 Go 项目并调用其函数、把 C 库编译成动态库让 Go 加载、让 C 代码反向调用你写的 Go 函数、以及照着同样的套路接入 libcurl 这类第三方 C 库。简单说,学完你不是 cgo 专家,但遇到“Go 工程要调一个 C 库”的任务,你知道从哪开始、怎么构建、怎么传参,不会再卡在第一行编译报错。
本课程我们快速讲一下cgo的基操,并且结合一些第三方库做一些实际的操作。本课程不打算大讲特讲C语言,关键是套路,关键是干。
课程目录
* 第1讲:开张课、第一段cgo代码
* 第2讲:运行和加载h文件和c文件的套路
* 第3讲:使用makefile统一处理cgo构建过程
* 第4讲:小练习(1): 用cgo获取hostname(主机名)
* 第5讲:小练习(2): 编译so文件、cgo调用so
* 第6讲:小练习(3): 传入文件名获取文件长度
* 第7讲:小练习(4): 使用cgo读取文件内容
* 第8讲:(穿插课)cgo调用FFMpeg的最基本套路和手法
* 第9讲:C 调用Go函数、传递字符串的写法
* 第10讲:cgo调用libcurl库请求网址获取响应






