杂谈:.so文件的后缀.so.1是什么意思

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

在Linux系统中,.so文件是动态链接库(Shared Object)的标准后缀,而.so.1或类似的带有数字后缀的文件,是动态链接库的特定版本。这种命名约定用于版本控制,确保应用程序链接到正确版本的库,以保持二进制兼容性。

解释和用法

  • 基本库名(如libexample.so:这通常是一个符号链接,指向库的当前默认版本。开发者和编译系统使用这个名字来编译和链接程序。
  • 带版本的库(如libexample.so.1:这表示库的特定版本。数字通常表示API版本或库的主要版本,确保应用程序总是链接到具有兼容API的库版本。
  • 更详细的版本(如libexample.so.1.2:这表示库的次要版本或修订版本。这允许对库进行微小的更新,而不破坏现有应用程序的兼容性。

版本控制的目的

使用这种版本控制机制有几个目的:

  1. 向后兼容性:确保即使库更新到新版本,依赖旧版本API的应用程序仍然可以正常运行。
  2. 并行安装:允许系统上同时存在库的多个版本,以满足不同应用程序的需求。
  3. 安全和稳定性更新:允许系统管理员更新库的安全补丁和稳定性改进,而不必重新编译依赖于该库的所有应用程序。

示例

假设有一个库libexample,当前安装了三个版本:libexample.so.1libexample.so.2libexample.so.3。应用程序A依赖于API版本1,而应用程序B依赖于API版本2。通过使用符号链接(如libexample.so指向libexample.so.2),开发者可以选择链接到特定版本的库,而系统管理员可以通过更新符号链接来控制默认的库版本。

总结

.so.1或其他类似的带数字后缀的动态链接库文件是Linux系统中常见的版本控制实践,它们帮助维护库的向后兼容性,允许并行安装多个版本,并简化了安全和稳定性的更新。

.so文件(so文件是什么) .so文件Linux下的程序函数库,即编译好的可以供其他程序使用的代码和数据。so文件是 elf 文件,elf 文件后缀名是.so,所以也被称之为.so文件 1so文件就跟.dll文件差不多。 2、一般来说,so文件就是常说的动态链接库, 都是C或C++编译出来的。与Java比较它通常是用的Class文件(字节码)。 3、Linux下的so文件时不能直接运行的,一般来讲,.so文件称为共享库。 4、so文件使用方法 阅读详情

相关推荐

gcc工具链——动态库和静态库,makefile,cmake,环境变量

交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

小勇博客 1405

Linux笔记-so.1so的区别(三方程序链接Qt的so.1so

如果是这样的,那么需要把这些都拷贝到对应的lib目录下,其他程序调用的时候一般不会直接链接到libXXXLib.so,会链接到so.版本号的程序所以有时就会出现error while loading shared libraries .... not found。领导让你从中扣出某个功能,再进行一些业务操作,变成新的程序,而要扣的某些功能,有的用了公司其他人开发的so。②使用ldd,查看程序链接到哪些dll,在国内,写的so一般都没有版本号,没有链到版本号的so要特别注意;最后屁股能坐得住椅子,慢慢测。

IT1995的博客 6260

网口电路/Bob Smith电路思考及测试

上表中的数据为实际数据,此时可以看出在结果比对中,分别为以上三种时,结果基本上变化很小,且网口一致性指标都是测试通过的,而且如果真的Bob Smith电路是有阻抗变换的作用的,我的以上操作(保留阻容、去掉电阻、去掉电阻电容)完全破环了阻抗平衡,但是实际上对网口一致性指标没有多大的影响,这是我认为该电路不具有阻抗变换的第一个原因。网口变压器的共模电感,就是电流型中的T10、T14、T17、T18,我们知道辐射超标一般都是共模电流导致的,而共模电感就是来消耗差分线路中的共模电流的,而对差模电流基本无影响。

domen_pan的博客 5976

Linux动态链接库.so文件的命名及用途总结

我们在linux下开发项目,有时会对外提供动态库,像***.so.1.0.0这样子的文件,另外提供相应的头文件。用户拿到动态库和头文件说明,就可以使用动态库里的function。 那随之而来的一个问题是,动态库的升级问题,我们的动态库更改了一个bug,升级了一个版本,那使用我们动态库的应用程序需要重新编译吗?运行时会产生异常吗?linux下是怎么规范这些内容的呐? 大家一定听说过win

bahutou, 嵌入式系统解决方案 2万+

linux中的libz.so.1文件丢失解决办法

libz.so.1 只是一个符号链接,如果你只是这个链接文件没了,而真正的库文件还在,那就不要紧。可以用以下方法恢复:ls /usr/lib/libz*正常情况下,你应该看到libz.so libz.so.1 libz.so.1.y.z其中 libz.so.1.y.z 才是真正的库文件1.y.z 是其具体版本,如果你的 libz.so.1.y.z 还在,你可以ln -s /usr/lib/libz

niuzhucedenglu的博客 3万+

linux 如何产生so文件,printf()函数 【转】Linux下gcc编译生成动态链接库*.so文件并调用它(2)...

本文仅限于介绍 linux 下的库。1.2、 库的种类linux 下的库有两种:静态库和共享库(动态库)。二者的不同点在于代码被载入的时刻不同。静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。静态用.a为后缀, 例如: libhello.a共享库(动态库)的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小。动态通常用.so后缀, 例如:libhello...

weixin_30651345的博客 370

gcc杂谈

1. -l选项自动给库文件名增加lib前缀和.a/.so后缀。所以如果你有一个lib叫做libusb.a,那么编译选项是-lusb。另一方面,如果你有一个文件叫做libusb.o(是目标文件而不是库文件),并希望将其作为库的形式使用,那么使用-llibusb.o。 2. pkg-config     这玩意自动给你的gcc命令行加上相关的lib和include位置选项。例如:     gcc...

weixin_34198762的博客 109

cmake(二十六)库的杂谈

说明: 本篇章是为了更高的理解'头文件、库文件、lib库'之间的联系,'辅助'理解'cmake'相关的指令 一 库 ① 什么是库 前提: 在windows平台和linux平台下都存在着'大量'的库 库是写好的现有的、'成熟的'、可以'复用'的代码 备注: 现实中每个程序都要依赖很多'基础的底层库',不可能每个人的代码都'从零开始',因此'库的存在意义'非同寻常 1)库'library'是函数库的'简称' 2)每个库都有'至少一个'的'头文件(.h文件)'和一个'库文件(二进制)...

wzj_110的博客 656

杂谈1——深度学习简易知识积累

浅浅记录一些知识,一方面做一些分享与自己的思考,另一方面作为笔记记录下来。

qq_45848817的博客 636

Unity 视频播放杂谈

原文链接:http://www.cnblogs.com/zsb517/p/4060814.html?utm_source=tuicool 背景:      游戏机中想加入舞蹈元素,最先的想法是开发舞蹈游戏,然后通过动画来表现舞蹈,给用户提供舞蹈教学方面的体验,但是舞蹈游戏本身的开发就需要很长的时间(就人太少),不用谈后续的舞蹈和音乐的版权啦,所以现在想走另外一条途径,在unity中

opphcm的专栏 1593

菜狗杂谈----深入理解计算机系统

ELF 0x1.简介 首先,有一种文件格式叫做对象文件(Object File),ELF(Executable Linkable Format)是一种文件存储格式,同时,遵从这种格式的文件也被称为ELF。用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件Linux下的目标文件和可执行文件都按照该格式进行存储。 ELF分为3种类型: 可重定位文件(Relocatable file): ...

F1ash000 364

python解压7z文件_Python调用7zip命令实现文件批量解压

Python调用7zip命令实现文件批量解压1.输入压缩文件所在的路径2.可以在代码中修改解压到的文件路径和所需要解压的类型,列入,解压文件夹下面所有的mp4格式的文件3.cmd 指的就是Python调用dos命令 ,紧跟着的x -r这些全是参考7zip使用书册,及抽取文件夹下所有的以mp4结尾的文件,把文件放入e盘,测试解压文件夹下的new文件夹# 调用7z命令批量解压文件import osfo...

weixin_39802962的博客 3155

linux浏览器不能播放音频文件夹,解决方案:无法播放LINUX mozilla firefox网页视频的解决方案...

这个问题困扰了我很长时间。相信ubuntu的大多数初学者都会遇到此问题。我将再次与您分享我的方法:1.首先,请确保您已安装显示的“缺少插件安装”,然后例如打开此视频URL在单击后会弹出,但无法播放。2.然后,根据Firefox浏览器提供的URL,我下载了“ install_flash_player_10_linux.tar.gz”文件。在以下tar命令中,使用选项“ z”是因为文件后缀是“ .g...

weixin_29528865的博客 899

linux查找目录6,find命令中 ls_linux创建目录命令_find命令查找文件(6)

find命令的例子我们已经介绍了f i n d命令的基本选项,下面给出f i n d命令的一些其他的例子。为了匹配$ H O M E目录下的所有文件,下面两种方法都可以使用:$ find $HOME -print$ find ~ -print为了在当前目录中查找s u i d置位,文件属主具有读、写、执行权限,并且文件所属组的用户和其他用户具有读和执行的权限的文件,可以用:$ find . -ty...

weixin_39932330的博客 357

Apache Hudi初探(六)(与spark的结合)

目前hudi的与spark的集合还是基于spark datasource V1来的,这一点可以查看。之前说到只有获取到分布式锁的线程才可以继续一下操作。后续发现也是基于Datasource V2的。

monkeyboy_tech的博客 587

android 6.0 ndk版本,[推荐]android-ndk6.0翻译(1)

[推荐]android-ndk6.0翻译(1)(2011-07-28 14:55:39)标签:杂谈序言:-------------此文档旨在描述Android.mk文件的语法,Android.mk文件为AndroidNDK(原生开发)描述了你C/C++文件。为了明白下面的内容,你必须已经阅读了docs/OVERVIEW.TXT的内容,它解释了Android.mk文件扮演的角色和用途。概述:---...

weixin_35452656的博客 455
上一篇: C++调用命令行执行命令
下一篇: Issac Gym指导书翻译 1.1
晴糖豆
博客等级 码龄7年 1004粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值