VIP20
本课程属于:009-多线程与内存管理 编程基础与工程化 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

工程构建中库链接冲突与解决

📚 共计 30 章节
01
链接基础
什么是链接 · 静态链接与动态链接的区别 · 链接器的工作流程
基础概念
02
符号解析
符号表的概念 · 强符号与弱符号 · 多重定义规则
符号解析
03
静态库冲突
静态库的打包与使用 · 同名符号冲突 · 链接顺序问题
静态库冲突
04
动态库冲突
动态库的加载机制 · 符号可见性 · 同名符号覆盖问题
动态库覆盖
05
链接顺序
静态库链接顺序规则 · 循环依赖处理 · --start-group/--end-group
顺序依赖
06
符号可见性
默认可见性 · 隐藏符号 · fvisibility=hidden
可见性GCC
07
弱符号与强符号
GCC属性 · 弱引用 · 强引用 · 覆盖机制
弱符号覆盖
08
同名函数冲突
C语言同名函数 · C++名字修饰 · extern "C"
名字修饰C++
09
全局变量冲突
多重定义 · common符号 · BSS段冲突
全局变量BSS
10
静态库与动态库混用
静态库链接动态库 · 动态库链接静态库 · 潜在问题
混用兼容
11
动态库版本冲突
SONAME机制 · 符号版本控制 · 兼容性管理
版本SONAME
12
LD_PRELOAD劫持
原理 · 应用场景 · 安全风险
劫持安全
13
LD_LIBRARY_PATH
搜索路径优先级 · 常见错误 · 最佳实践
路径环境变量
14
RPATH与RUNPATH
嵌入搜索路径 · 区别 · 使用场景
RPATHRUNPATH
15
符号版本控制
GCC版本脚本 · 版本节点 · 向后兼容
版本脚本兼容
16
ABI兼容性
什么是ABI · 破坏ABI的行为 · 保持ABI稳定
ABI稳定
17
C++链接问题
名字修饰 · 模板实例化 · 异常处理 · RTTI
C++RTTI
18
链接器脚本
基本语法 · 内存布局 · 自定义段
脚本布局
19
链接优化
链接时优化(LTO) · 死代码消除 · 函数重排
LTO优化
20
增量链接
概念 · 使用场景 · -r选项
增量-r
21
预链接
原理 · 加速启动 · Android预链接
预链接Android
22
交叉编译链接
工具链配置 · 库搜索路径 · sysroot
交叉编译sysroot
23
CMake链接管理
target_link_libraries · 接口库 · 传递依赖
CMake传递
24
Makefile链接管理
变量管理 · 依赖追踪 · 模式规则
Makefile规则
25
Bazel链接管理
cc_library · 链接模式 · 沙箱机制
Bazel沙箱
26
链接冲突调试
nm · objdump · readelf · ldd工具使用
调试工具
27
链接错误分析
undefined reference · multiple definition · relocation truncated
错误分析
28
大型项目链接策略
模块化设计 · 接口隔离 · 依赖管理
架构模块
29
链接安全
符号劫持 · 安全加载 · RELRO · PIE
安全RELRO
30
未来趋势
LLD链接器 · 链接性能 · 新格式探索
LLD趋势