IT网课学习吧

Linux C C++静态库、动态库高级编程

软考考证
课程简介

《Linux C C++静态库、动态库高级编程》Linux C/C++ 静态库 与动态库高级编程课程,由黄强老师主讲,系统讲解库的创建、编译链接、环境配置、版本控制、符号冲突、动态加载及ELF文件等核心知识点。课程帮助学员掌握Linux下静态库(.a)与动态库(.so)的编程技能,为C、C++及Java企业级开发奠定基础,适合有志于Linux C/C++高级开发路线的学习者。【技能收获】学完可掌握:Java 后端开发、Linux 运维。课程以实战为导向,覆盖从基础概念到完整项目落地的关键步骤,配套章节笔记便于课后复盘与面试前快速回顾。【学习建议】建议按目录顺序学习,先打基础再进入综合实战章节;

已有 0 人浏览 发布 2026-09-14 更新 2026-09-14

这门课的名字起得很直白:Linux 下的静态库与动态库。但它真正值钱的地方,不在"库"这个字,而在于它把编译、链接、装载这条链路拆开给你看。很多人写了两三年 C/C++,遇到 "undefined reference" 还是靠搜索引擎碰运气,遇到 so 版本对不上就重装环境——这门课就是治这个的。

课纲含金量:它讲的是"链接期"和"运行期",不是语法

市面上大部分 C/C++ 课把篇幅花在语法和数据结构上,库这块往往一笔带过,最多教你怎么 ar 打包、怎么 -l 链接。但这门课的重心明显偏后:符号冲突怎么产生、动态库的版本号(soname)为什么必须管、运行时库搜索路径的优先级顺序、dlopen/dlsym 这套动态加载接口怎么用,以及最后落到 ELF 文件格式上。这几个点连起来,其实是"一个可执行文件从源码到跑起来"的完整生命周期。

判断一门课值不值得精看,我一般看它敢不敢碰这些"出问题才有人查"的内容。符号表、重定位、GOT/PLT 这类东西,平时代码写对了根本用不上,可一旦接手遗留项目或者做 SDK 封装,就是硬门槛。课纲里出现这些,说明它不是面向初学者的科普,而是给已经能写代码、但想搞懂底层机制的人准备的。

哪些章节值得精看,哪些可以快进

  • 静态库的创建与链接:可以快进。ar 打包、-L 指定路径这套操作,动手半小时就能会,价值在于建立对照基准,不用反复看。
  • 动态库的编译与 soname 版本控制:必须精看。这是企业级部署最容易翻车的地方——同一个 so 被多个程序依赖,版本升错了就是线上事故。课里如果讲了符号链接的命名约定和升级策略,这部分要动手复现一遍。
  • 符号冲突与可见性控制:值得反复看。多个库定义了同名符号时链接器怎么选、visibility 属性怎么藏内部符号,这是做基础库、做跨团队 SDK 时的核心技能,也是面试高频点。
  • 动态加载(运行时加载):精看并跟做。插件化架构、热更新、按需加载驱动,底层都是这套接口,实用性最强。
  • ELF 文件结构:第一遍看个轮廓就行,等前面几块都跑通了再回来啃,否则容易变成纯理论记忆。

资料包怎么拆开用

先别按顺序从头看到尾。建议按"问题驱动"来拆:第一轮只解决一件事——自己写一个静态库、一个动态库,各被一个程序调用,跑通。这一轮把编译链接的命令行参数记牢。

第二轮专门制造故障:故意让两个库符号重名,看链接器报什么错;故意把 so 放到错误路径,观察运行时找不到库的表现;故意改 soname 不做兼容,看程序怎么崩。故障复现比顺利跑通记得牢十倍。

第三轮再进 ELF 和动态加载。这时候你手里已经有可执行文件和 so,用 readelf、nm、ldd 这些工具去验证课里讲的结论,理论就落地了。工具命令不用背,用几次自然记住。

适合谁,不适合谁

适合:写过一定量 C/C++、做过 Linux 环境下的构建,但说不清链接过程的人;要封装内部库给其他团队用的人;准备往系统层、中间件、嵌入式方向走的人。课程信息里提到对 Java 企业级开发也有帮助,这个说法要理性看——JNI 调用本地库确实会碰到 so 加载问题,但那是延伸场景,不是这门课的主线。

不适合:还没写过完整 C 程序、连 make 都用不顺的人。这门课默认你有基础,不会停下来补语法。

一句话总结:这门课不是教你"多会一种库",而是把编译链接的黑盒撬开一条缝。缝撬开了,以后所有跟"库"相关的报错,你都能自己定位。


Linux C/C++ 静态库 与动态库高级编程课程,由黄强老师主讲,系统讲解库的创建、编译链接、环境配置、版本控制、符号冲突、动态加载及ELF文件等核心知识点。课程帮助学员掌握Linux下静态库(.a)与动态库(.so)的编程技能,为C、C++及Java企业级开发奠定基础,适合有志于Linux C/C++高级开发路线的学习者。

课程推荐

《Linux C C++静态库、动态库高级编程》Linux C/C++ 静态库 与动态库高级编程课程,由黄强老师主讲,系统讲解库的创建、编译链接、环境配置、版本控制、符号冲突、动态加载及ELF文件等核心知识点。课程帮助学员掌握Linux下静态库(.a)与动态库(.so)的编程技能,为C、C++及Java企业级开发奠定基础,适合有志于Linux C/C++高级开发路线的学习者。【技能收获】学完可掌握:Java 后端开发、Linux 运维。课程以实战为导向,覆盖从基础概念到完整项目落地的关键步骤,配套章节笔记便于课后复盘与面试前快速回顾。【学习建议】建议按目录顺序学习,先打基础再进入综合实战章节;每完成 2~3 节可结合笔记整理一份学习小结,最终尝试独立复现一套完整 Demo 写入个人作品集。【就业发展】可面向岗位:Linux 运维工程师、SRE、云计算工程师、DevOps 工程师。云原生与自动化运维仍是企业 IT 刚需方向,认证 + 实战项目组合能显著提升面试通过率,适合向中高级运维或架构岗进阶。 若你已有一定编程或运维基础,本课程可帮助你在现有技能栈上快速叠加热门方向能力,提升求职时的项目说服力与薪资谈判空间。

视频目录(34 节)

*   1 Linux使用ar创建C静态库.mp4

*   2 Linux静态库和动态库简介.mp4

*   3 Linux使用C静态库(方式一).mp4

*   4 Linux使用C静态库(方式二).mp4

*   5 Linux程序编译时查找静态库的路径.mp4

*   6 Linux使用ar创建C++静态库.mp4

*   7 Linux使用C++静态库.mp4

*   8 Linux C++程序链接C静态库.mp4

*   9 Linux C程序链接C++静态库.mp4

*   10 Linux使用gcc -fPIC -shared创建C动态库.mp4

*   11 Linux使用C动态库(方式一).mp4

*   12 Linux使用C动态库(方式二).mp4

*   13 Linux程序编译时查找动态库的路径.mp4

*   14 Linux程序运行时查找动态库的路径.mp4

*   15 Linux使用rpath指定运行时动态库搜索路径.mp4

*   16 Linux使用LD_DEBUG输出动态链接库的调试信息.mp4

*   17 Linux动态库版本命名规范.mp4

*   18 Linux动态库之soname详解.mp4

*   19 Linux使用dlopen()函数调用动态库.mp4

*   20 Linux使用g++ -fPIC -shared创建C++动.mp4

*   21 Linux使用C++动态库.mp4

*   22 Linux C++程序链接C动态库.mp4

*   23 Linux C程序链接C++动态库.mp4

*   24 Linux动态库的符号覆盖.mp4

*   25 Linux设置动态库符号的可见性.mp4

*   26 Linux使用LD_PRELOAD优先加载动态库.mp4

*   27 Linux使用-static指定链接静态库.mp4

*   28 Linux ELF文件格式剖析之ELF头.mp4

*   29 Linux使用C语言代码读取ELF头.mp4

*   30 Linux ELF文件格式剖析之Section.mp4

*   31 Linux使用C语言读取ELF节表.mp4

*   32 Linux ELF文件格式剖析之符号表.mp4

*   33 Linux使用C语言读取ELF符号表.mp4

*   34 Linux静态库和动态库总结.mp4

课程购买
课程价格
金币29.9
299金币限时优惠会员免费
销量:0
💎 开通会员每日免费下载,比单买更划算 →
支付成功后会自动显示下载资源云盘的链接!点击链接即可下载到本地。