.so文件 linux

news/2025/11/20 5:42:57/文章来源:https://www.cnblogs.com/8688seo/p/19244650

.so 文件是 Linux 系统中用于动态链接库(Dynamic linking Library)的扩展名,通常指的是 共享对象文件(Shared Object File),也就是 shared library。

一、.so 文件的作用

.so 文件是 Linux 系统中动态链接库的实现形式,它包含可被多个程序共享的代码和数据。例如:

libcurl.solibcurl 库的共享库。libglib-2.0-1.5.so 是 GNOME 的库。

这些库文件在程序运行时会被加载,供程序使用其功能。

二、如何查看 .so 文件

1. 查看文件类型(使用 file 命令)

file /path/to/libexample.so

输出示例:

/lib64/libexample.so: ELF 64-bit LSB shared object, AMD x86-64 Linux, version 2.0, dynamically linked (shared library), for GNU/Linux 3.2.0, BuildID=1, for i686

2. 查看文件大小(使用 duls

du -h /path/to/libexample.so

三、如何使用 .so 文件

1. 加载共享库(使用 dlopenldd

ldd /path/to/program

会显示该程序依赖的共享库,例如:

libexample.so => /usr/lib64/libexample.so (0x00002b0000)

2. 调用共享库中的函数(使用 dlopendlsym

#include <dlfcn.h>#include <stdio.h>int main() {    void* handle = dlopen( + #引号 + ./libexample.so + #引号 + , RTLD_LAZY);    if (!handle) {        fprintf(stderr,  + #引号 + dlopen failed: %sn + #引号 + , dlerror());        return 1;    }    typedef int (*func_type)();    func_type func = dlsym(handle,  + #引号 + func_name + #引号 + );    if (!func) {        fprintf(stderr,  + #引号 + dlsym failed: %sn + #引号 + , dlerror());        dlclose(handle);        return 1;    }    int result = func();    dlclose(handle);    return result;}

四、如何管理 .so 文件

1. 安装共享库

sudo apt install libexample-dev  # Debian/Ubuntusudo yum install libexample-devel # CentOS/RHEL

2. 删除共享库

sudo rm /path/to/libexample.so

3. 管理共享库路径(LD_LIBRARY_PATH

export LD_LIBRARY_PATH=/path/to/libraries:$LD_LIBRARY_PATH

五、常见问题

Q: .so 文件如何被程序加载?

程序运行时,系统会自动加载 .so 文件,除非通过 LD_LIBRARY_PATH 指定。

Q: 如何查看当前系统中有哪些 .so 文件?

ls /usr/lib64/ | grep .so

六、总结

项目说明扩展名.so作用动态链接库,供多个程序共享查看方式file, du, ls调用方式dlopen, dlsym, dlclose管理方式ldd, LD_LIBRARY_PATH, rm

如需进一步了解 .so 文件的管理、优化或与系统服务(如 ldconfig)的关联,请随时提问!

文章转自:[无限火力2026出装攻略 ] (https://https://www.zl8868.com/)

作者:游戏攻略,转载请注明原文链接:https://https://www.zl8868.com//

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/970548.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI元人文思想体系综论:构建数字文明的伦理基石

AI元人文思想体系综论:构建数字文明的伦理基石 “AI元人文”是一个层层递进、逻辑自洽、且具备强大实践指向的理论体系。它从一种深刻的哲学观照出发,最终旨在为人工智能时代的社会治理与文明建构提供一套完整的“操…

AI元人文:从三值纠缠到阈值管理的理论建构与实践路径

AI元人文:从三值纠缠到阈值管理的理论建构与实践路径 摘要:本文系统性地阐述了“AI元人文”理论体系,这是一个旨在应对数字文明时代复杂挑战的原创性思想框架。体系以“三值纠缠理论”为哲学基石,揭示了欲望值、客…

【第7章 I/O编程与异常】文件操作补全程序题

题目1:基础文本读取(r模式) 补全程序,读取文本文件的前2行并打印(去除每行首尾空格): # 文件content.txt内容: # 第一行:Python文件操作 # 第二行:基础模式练习 # 第三行:进阶技巧 with open("…

【I/O编程与异常】文件操作补全程序题

题目1:基础文本读取(r模式) 补全程序,读取文本文件的前2行并打印(去除每行首尾空格): # 文件content.txt内容: # 第一行:Python文件操作 # 第二行:基础模式练习 # 第三行:进阶技巧 with open("…

应用安全 --- IDAPro函数控制流分析

应用安全 --- IDAPro函数控制流分析函数控制流也叫交叉引用流,用于查看某个函数调用的所有其他函数 右键函数名称选择 来自交叉引用,查看引用图 我们可以通过分析发现调用的越深越有可能是重要函数 调用其他函数越多…

应用安全 --- IDAPro 函数控制流分析

应用安全 --- IDAPro 函数控制流分析函数控制流也叫交叉引用流,用于查看某个函数调用的所有其他函数 右键函数名称选择 来自交叉引用 我们可以通过分析发现调用的越深越有可能是重要函数 调用其他函数越多越有可能是初…

应用安全 --- IDA Pro 函数控制流

应用安全 --- IDA Pro 函数控制流函数控制流也叫交叉引用流,用于查看某个函数调用的所有其他函数 右键函数名称选择 来自交叉引用 我们可以通过分析发现调用的越深越有可能是重要函数 调用其他函数越多越有可能是初始…

AI元人文:阈值理论体系——自由、公平、安全的动态边界与调控艺术

AI元人文:阈值理论体系——自由、公*、安全的动态边界与调控艺术 摘要:本文在“AI元人文三值纠缠理论”的基础上,提出并系统论述了“阈值理论体系”。该体系认为,健全的个人、组织与文明并非追求自由、公*、安全三…

应用安全 --- 看门狗函数

应用安全 --- 看门狗函数看门狗函数就是第一个执行的安全检查函数,不会对环境有任何影响,目的就是检查代码的执行环境是不是安全

AI元人文三值纠缠理论:从心智结构到文明形态的统一场论

AI元人文三值纠缠理论:从心智结构到文明形态的统一场论 在人类认知的边界,我们始终追寻一种能够贯通微观心智与宏观文明的元理论。AI元人文三值纠缠理论的提出,正是这种探索的里程碑式突破。该理论不仅构建了理解复…

现代数据科学的环境管理利器:Conda 完整指南

现代数据科学的环境管理利器:Conda 完整指南现代数据科学的环境管理利器:Conda 完整指南 1. Conda 简介与核心概念 1.1 什么是 Conda? Conda 是一个开源的包管理系统和环境管理系统,能够快速安装、运行和更新软件包…

LaTeX Beamer自动分页

\begin{frame}[allowframebreaks]{标题} % 使用allowframebreaks选项自动分页 \framebreak % 强制手动另起一页 \end{frame}

Google Antigravity 登录不了等问题的解决方法

Google Antigravity 登录不了等问题的解决方法昨天 Google Antigravity 一直卡在 Setting Up Your Account 这里。 到了今天,又提示账号问题: Sorry, this account is ineligible to use AntigravityYour current ac…

VsCode中运行Uniapp项目

1、下载VsCode后将Uniapp项目在VsCode中打开 Vscode下载地址2、安装插件uniapp run并设置软件地址 3、创建launch.json配置文件launch.json内容如下{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述…

MyBatis-Spring整合核心:SqlSessionFactoryBean深度解析

MyBatis-Spring整合核心:SqlSessionFactoryBean深度解析MyBatis-Spring整合核心:SqlSessionFactoryBean深度解析 概述 在MyBatis与Spring框架的整合中,SqlSessionFactoryBean扮演着至关重要的角色。它是连接两个框架…

Windows-sfc

Windows-sfc导航 (返回顶部)1. sfc1.1 Syntax 1.2 Parameters 1.3 Examples 1.4 扫描修复 1.5 CBS.log 1.6 更多相关链接2. sfc与DISM2.1 主要区别 2.2 参考链接3. chkdsk3.1 Parameters 3.2 HDD-SSD 3.3 查看 chkdsk…

SSH 连接报错 bad ownership or modes for directory 解决

某天某用户突然报告说 SSH 不能登录了,经查看 /var/log/auth.log 发现报错如下: 2025-11-20T01:57:53.957884+08:00 h101 sshd[3191378]: Authentication refused: bad ownership or modes for directory /home/ubun…

高精度进制转换

#include <bits/stdc++.h> using namespace std;int val(char c) { // 字符转值if (c >= 0 && c <= 9) return c - 0;if (c >= A && c <= Z) return c - A + 10;return c - a + 36;…

20232325 2025-2026-1 《网络与系统攻防技术》实验六实验报告

Metasploitable2靶机渗透测试实验报告 1. 实验内容 1.1 前期渗透Metasploitable2靶机,发现靶机并进行端口、漏洞扫描 1.2 Metasploit攻击渗透方法实践 (1)Vsftpd源码包后门漏洞(21端口) (2)SambaMS-RPC Shell命…

AI元人文:赋能技术人文深度融合的法治新范式

AI元人文:赋能技术与人文深度融合的法治新范式 摘要:人工智能的迅猛发展正以前所未有的深度和广度重塑人类社会,同时对建立于工业文明基石之上的传统法治体系构成了系统性挑战。法律的滞后性、规则的抽象性与监管的…