当前位置: 首页 > java >正文

编译链接实战(31)再论静态库的本质是啥

文章目录

      • 1. 静态库的物理构成
      • 2. 静态库的链接行为
      • 3. 静态库的本质特点
      • 4. 静态库的底层示例
        • **(1) 创建静态库**
        • **(2) 查看静态库内容**
        • **(3) 链接时的行为**
      • 5. 静态库的优缺点
        • **优点**
        • **缺点**
      • **6. 静态库 vs 动态库的本质区别**
      • **7. 静态库的典型应用场景**
      • **总结**

在这里插入图片描述

静态库(Static Library)的本质是预编译的目标文件(.o 文件)的归档集合,通过静态链接在编译时直接嵌入到最终的可执行文件中。它的核心特点和底层原理如下:


1. 静态库的物理构成

  • 目标文件的集合
    静态库本质上是一组已经编译但未链接的**目标文件(.o 文件)**的打包(通常使用 ar 工具归档生成)。

    • 例如,一个数学库 libmath.a 可能包含 add.osub.omul.o 等目标文件。
    • 通过 ar -t libmath.a 可以查看库中包含的目标文件列表。
  • 符号表(Symbol Table)
    每个目标文件包含自己的符号表(函数名、全局变量等

http://www.xdnf.cn/news/14335.html

相关文章:

  • LeetCode 2300.咒语和药水的成功对数
  • leetcode复盘(1)
  • 【项目实训】【项目博客#08】HarmonySmartCodingSystem系统前后端知识图谱与可视化实现(5.12-6.1)
  • 深入理解Redis五种基本数据类型
  • (LeetCode 动态规划(基础版)) 279. 完全平方数 (动态规划dp)
  • java复习 14
  • 深度学习入门知识
  • DP刷题练习(二)
  • 【学习笔记】深入理解Java虚拟机学习笔记——第7章 虚拟机类加载机制
  • 关于layui select option莫名多一行的问题
  • EventSourcing.NetCore:基于事件溯源模式的 .NET Core 库
  • 内部代理服务器单点故障导致后端服务概率性失败
  • 算法的几大模块
  • SpringBoot入门 springboot模版注入问题
  • 单例模式的好处
  • 火山引擎解码生态型增长铁律
  • QMI8658A 六轴惯性测量单元的应用介绍
  • Tomcat配置学习
  • 剑指offer26_顺时针打印矩阵
  • Java单例模式的七种实现方式每种方式的应用场景和最佳使用场景分析
  • LeetCode 第75题:颜色分类
  • 设计模式(10)——创建型模式之抽象工厂
  • 机器学习模型评估与选择
  • Python 爬虫入门 Day 4 - 模拟登录爬虫与 Session 维持
  • 【极客时间】大模型RAG进阶实战营毕业总结
  • 通过 O-RAN 传感进行异常识别和防护
  • 打造丝滑滚动体验:Scroll-driven Animations 正式上线!
  • PDF超强无损压缩
  • 记录一次 Oracle DG 异常停库问题解决过程
  • [直播推流] rtmpdump 库学习