全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货  >  云计算技术干货  >  详情

linux动态加载so原理,linux添加动态库

来源:千锋教育
发布人:xqq
2023-11-23

推荐

在线提问>>

什么是linux中的SO动态库

SO文件是Linux下共享库文件,它的文件格式被称为ELF文件格式。由于Android操作系统的底层基于Linux系统,所以SO文件可以运行在Android平台上。Android系统也同样开放了C/C++接口供开发者开发Native程序。

so的全称是shared object,即共享动态链接库,类似于windows下的dll文件。

so文件是Linux下的程序函数库,即编译好的可以供其他程序使用的代码和数据。so文件就跟.dll文件差不多。一般来说,so文件就是常说的动态链接库, 都是C或C++编译出来的。

在/lib目录下,就有许多以.so作后缀的文件,这就是LINUX系统应用的动态链接库,只不过与WINDOWS叫法不同,它叫so,即Shared Object,共享对象。

.so文件代表Linux的共享函数库文件,程序运行时可能会使用到里面的函数代码。当一个程序需要.so共享函数库文件时,系统自动会把它加载到内存中使用。相当于Windows系统里面的dll动态链接库文件。

动态库:这类库的名字一般是libxxx.M.N.so,同样的xxx为库的名字,M是库的主版本号,N是库的副版本号。当然也可以不要版本号,但名字必须有。

linux下面的so是什么东西?

1、so文件是Linux下的程序函数库,即编译好的可以供其他程序使用的代码和数据。so文件就跟.dll文件差不多。一般来说,so文件就是常说的动态链接库, 都是C或C++编译出来的。

2、so的全称是shared object,即共享动态链接库,类似于windows下的dll文件。

3、.so文件代表Linux的共享函数库文件,程序运行时可能会使用到里面的函数代码。当一个程序需要.so共享函数库文件时,系统自动会把它加载到内存中使用。相当于Windows系统里面的dll动态链接库文件。

4、so:文件表示动态链接库。a:代表的是静态函数库,当同时运行多个程序并且都使用到同一个函数库的函数时,内存中就会有同一函数的多份副本,会消耗大量宝贵的内存。

5、在/lib目录下,就有许多以.so作后缀的文件,这就是LINUX系统应用的动态链接库,只不过与WINDOWS叫法不同,它叫so,即Shared Object,共享对象。

linux动态库问题

1、linux 加载当前目录的动态库的方法是:设置合适的环境变量LD_LIBRARY_PATH。

2、lib是Linux 上的库的约定前缀,math 是共享库名字,so 是共享库的后缀名,1234的是共享库的版本号,其主版本号+小版本号+build号。

3、动态库函数在加载程序时,数据库将被加载。但是,动态加载程序链接器将符号解析推迟到函数调用时间。在对共享库的调用是通过过程链接表(PLT)中的一个条目间接完成的。最初,PLT中的所有条目都指向ld.so。

so文件用法?

1、SO文件是Linux下共享库文件,它的文件格式被称为ELF文件格式。由于Android操作系统的底层基于Linux系统,所以SO文件可以运行在Android平台上。Android系统也同样开放了C/C++接口供开发者开发Native程序。

2、xx是你的.so文件名 其实使用方法和你使用数学库函数是一样的,源代码中添加 include math.h,编译的时候,加上-lm参数。注:linux下的.so文件为共享库,相当于windows下的dll文件。

3、.so 文件安装一般是在/usr/lib或者/usr/local/lib下,安装后不需要绝对路径即可使用。当然你也可以安装到工程文件夹下面,不过很少有这么做的。

4、首先,在我们的Module的根目录中建立libs目录,将jpush集成SDK中的so文件分别拷入,截图如下:然后就是编写我们的build.gradle文件。

5、.so结尾的文件是动态链接库,动态链接库不能主动运行,只能被动调用。

相关文章

linux下执行php脚本,linux运行php

linux取消修改并退出,linux如何退出编辑模式

linux只能上传不能删除文件,linux 文件不能删除

linux系统管理大全,linux管理平台

linux怎样进入超级账号,linux怎样进入超级账号模式

开班信息 更多>>

课程名称
全部学科
咨询

HTML5大前端

Java分布式开发

Python数据分析

Linux运维+云计算

全栈软件测试

大数据+数据智能

智能物联网+嵌入式

网络安全

全链路UI/UE设计

Unity游戏开发

新媒体短视频直播电商

影视剪辑包装

游戏原画

    在线咨询 免费试学 教程领取