so文件是什么
so文件是什么在Linux系统中.so文件是最常见的动态链接库Dynamic Shared Library全称是Shared Object共享对象。简单来说它就相当于 Windows 系统里的.dll文件。一、核心概念.so 文件到底是做什么的.so 文件里面存放的是已经编译好的、可重用的代码和数据主要是函数、全局变量等。多个程序可以同时使用同一个 .so 文件而不是每个程序都把同样的代码复制一份。这样做的好处是节省磁盘空间一份代码大家共用节省内存运行时内存中也只有一份更新方便修复 bug 或升级功能只需替换 .so 文件大部分情况下不需要重新编译使用它的程序二、.so 文件 vs .a 文件静态库对比最容易混淆的点特性.so 文件动态链接库.a 文件静态链接库全称Shared ObjectArchive / Static Library链接时机运行时动态链接编译时静态链接可执行文件大小更小不包含库代码更大把需要的代码全打包进去内存占用多个程序共享同一份省内存每个程序都有独立一份占内存更新库代码替换 .so 文件即可通常不用重编译程序必须重新编译所有使用它的程序启动速度稍慢首次加载时需要解析链接稍快已经全部链接好典型例子libc.so、libpthread.so、libssl.solibxxx.a较少见于最终产品Windows 对应物.dll.lib静态部分三、常见的 .so 文件举例你电脑上几乎肯定有这些libc.so或libc.so.6C 标准库几乎所有程序都要用libstdc.soC 标准库libm.so数学库sin、cos、sqrt 等libpthread.so线程库libcrypto.so / libssl.soOpenSSL 加密库libgtk-3.soGTK 图形界面库libpython3.10.soPython 解释器库这些文件通常位于/lib /usr/lib /usr/local/lib /lib64 /usr/lib64四、.so 文件是怎么被程序使用的简单流程程序编译时只记录“我需要用到 libxxx.so 里的某个函数”程序运行时系统加载器ld.so / ld-linux.so负责找到对应的 .so 文件把 .so 映射到内存解析符号函数地址完成链接你可以用下面命令查看一个程序依赖哪些 .soldd /bin/ls# 查看 ls 命令依赖的动态库ldd your_program# 查看你自己的程序五、怎么自己生成 .so 文件最简单示例# 1. 编译成位置无关代码-fPICgcc -shared -fPIC -o libhello.so hello.c# 2. 或者分步gcc -fPIC -c hello.c -o hello.o gcc -shared -o libhello.so hello.o# 使用时gcc main.c -L. -lhello -o mainLD_LIBRARY_PATH. ./main六、总结一句话.so 文件 Linux 下的动态共享库作用是让多个程序共享同一份代码节省空间、方便更新、提高效率。它是 Linux 系统高效运行的重要基石之一。相当于 Windows 的 .dllAndroid 里的 .so其实也是 ELF 格式的共享库。如果你在开发、逆向、性能优化、部署时遇到 .so 相关问题找不到库、版本不兼容、符号未定义等基本都是动态链接的经典症状。有具体场景想深入了解的比如怎么调试 so 加载失败、符号冲突、版本控制、rpath 设置等可以继续问

相关新闻

CAD工程制图规则

CAD工程制图规则

CAD工程制图规则(中国国家标准视角) 在中国的工程设计领域,使用AutoCAD、浩辰CAD、中望CAD等软件进行制图时,必须遵循相关国家标准,以保证图纸的规范性、一致性、可读性和可复制性。 最核心的两大标准是:…

2026/5/17 3:12:08 阅读更多 →
【Linux命令大全】010.设备管理(理论篇)

【Linux命令大全】010.设备管理(理论篇)

【Linux命令大全】010.设备管理 ✨ 本文为Linux系统设备管理相关命令的全面汇总与深度优化,结合图标、结构化排版与实用技巧,专为高级用户和系统管理员打造。 覆盖常见设备管理命令,按字母序排列,便于快速定位与查阅。 (关注不迷路…

2026/7/3 22:34:43 阅读更多 →
区块链测试规范:智能合约审计标准解读

区块链测试规范:智能合约审计标准解读

第一章:智能合约审计的核心意义与行业背景智能合约作为区块链应用的执行引擎,其安全性直接决定去中心化系统的可靠性。2025年DeFi领域因合约漏洞导致的经济损失超$20亿,凸显审计的不可或缺性。对测试从业者而言,审计不仅是漏洞检测…

2026/7/3 5:26:11 阅读更多 →

最新新闻

U-Net变体演进:医学图像分割的核心技术与优化策略

U-Net变体演进:医学图像分割的核心技术与优化策略

1. U-Net变体演进背景与核心价值2015年诞生的U-Net架构已经成为医学图像分割领域的里程碑式工作。其经典的编码器-解码器结构配合跳跃连接的设计,在数据量有限的情况下仍能获得精确的分割结果。但随着应用场景的复杂化和硬件算力的提升,原始U-Net逐渐暴露…

2026/7/5 23:37:08 阅读更多 →
AI大模型实战手册:从Transformer到RAG,核心概念与工程实践详解

AI大模型实战手册:从Transformer到RAG,核心概念与工程实践详解

1. 项目概述:为什么需要一本AI大模型的“词典”?最近几年,AI大模型的热度居高不下,几乎每天都能看到新的模型发布、新的应用落地。但随之而来的,是铺天盖地的技术名词和行业黑话。从“Transformer”到“RAG”&#xff…

2026/7/5 23:33:07 阅读更多 →
ElasticFace:动态边缘惩罚提升深度人脸识别性能

ElasticFace:动态边缘惩罚提升深度人脸识别性能

1. 论文核心内容概览 在深度人脸识别领域,特征提取的质量直接决定了模型的识别性能。传统方法如ArcFace、CosFace等通过引入固定的惩罚边缘(Fixed Penalty Margin)来增强特征的区分度,但这种"一刀切"的方式在面对真实场…

2026/7/5 23:33:07 阅读更多 →
AI模型Web服务安全加固实战:从CSRF/XSS防护到生产部署

AI模型Web服务安全加固实战:从CSRF/XSS防护到生产部署

1. 项目概述:当AI视觉模型遇上Web安全最近在部署一个基于OFA(One-For-All)的图像语义蕴含模型服务时,我遇到了一个非常典型但又容易被忽视的问题:我们往往把绝大部分精力都花在了模型调优、接口性能优化上,…

2026/7/5 23:29:06 阅读更多 →
视频嵌入表示技术:从3D CNN到Transformer的实践指南

视频嵌入表示技术:从3D CNN到Transformer的实践指南

1. 视频嵌入表示生成方案概述视频嵌入表示(Video Embedding)是计算机视觉领域将原始视频数据转化为低维稠密向量的关键技术。不同于传统视频处理直接操作像素数据,嵌入表示通过深度学习模型提取视频的语义特征,形成固定长度的向量…

2026/7/5 23:29:06 阅读更多 →
GPT-4o与Claude 3.5 Sonnet模型选型实战指南

GPT-4o与Claude 3.5 Sonnet模型选型实战指南

该项目标题存在严重事实性错误与误导风险,不符合内容安全与专业规范要求。根据公开、权威、可验证的官方信息渠道(OpenAI官网、主流科技媒体如The Verge、TechCrunch、MIT Technology Review等2024年至今的持续追踪报道),截至目前…

2026/7/5 23:29:06 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻