跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++

初识 Linux:动态库与静态库基础

综述由AI生成介绍 Linux 下静态库与动态库的基础概念。通过对比 .so、.a 等后缀及 Windows 对应格式,解释了库的作用是将函数实现封装。以 STL 容器为例说明接口与实现的关系,并简述了从源代码到最终库文件的编译链接过程。

刀狂发布于 2026/3/22更新于 2026/5/2227 浏览
初识 Linux:动态库与静态库基础

引言

继上文,从磁盘理解到文件系统框架搭建,再到软硬链接部分,我们逐渐理解了为什么运行程序需要 ./a.out,以及前面的 . 代表什么。

在文件权限部分,我们见识了最基本的库,知道 Linux 动态库后缀是 .so,静态库是 .a,Windows 动态库是 .dll,静态库是 .lib。且库名需去掉前缀和后缀。

那么,我们是否使用过库呢?当然使用过。在使用 C 或 C++ 时,我们使用的头文件所在的库(如 std 库)肯定用过。库的作用是什么呢?

在 STL 容器里,都有基本函数的接口,比如 vector 的 push_back,我们使用的是对应的接口。具体的实现在哪里呢?

具体实现放在 .cc 文件,经编译器编译成 .o 文件,经过链接合并形成最终的库。

接下来,我们从是什么、为什么、怎么办三个方面讨论静态库和动态库。

静态库

为生成静态库,先模拟实现多个 .c 文件和 .h 文件:

图片

然后在里面写入对应的代码:

#pragma once
int Sub(int x, int y);
#include "sub.h"
int Sub(int x, int y) {
    return x - y;
}
#include "add.h"
int Add(int x, int y) {
    return x + y;
}
#pragma once
int Add(int x, int y);

目录

  1. 引言
  2. 静态库
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • OpenLLaMA 智能文案生成系统构建指南
  • Qwen3Guard-Gen-WEB 全球多语言内容合规部署实测
  • 华为设备 SSH 远程登录配置实战
  • OpenClaw 开源桌面 Agent 部署与飞书钉钉集成实战指南
  • 本地部署 OCR 文字检测系统:ResNet18 WebUI 一键启动指南
  • 前端API设计最佳实践:让你的API更优雅
  • C++26 契约编程概览与工程实践
  • OpenClaw 自我进化:AI 记忆管理与自动压缩配置
  • 通过 Vue 实例劫持突破 Web 编辑器粘贴限制
  • 如何自定义 Subway 图标:源文件编辑与颜色调整
  • 6 年自研纯 C# UI 引擎 XchyUI,内核小于 200KB 支持跨平台
  • 新能源汽车电机热网络温度预测模型技术解析
  • Python 基础入门:数据存储与运算
  • OpenClaw:本地优先开源 AI 智能体部署与实战指南
  • 鸿蒙金融理财全栈项目:生态合作、用户运营与数据变现
  • Ego Planner 算法仿真环境与解耦架构实现
  • FreeCAD 网格修复指南:解决 STL 文件孔洞与重叠问题
  • Windows 平台 MySQL 5.7 解压版安装与配置指南
  • 云计算与低代码协同:企业数字化转型的核心逻辑与实战落地
  • MySQL 5.7 解压版安装与配置实战

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online