Android 动态库/静态库(.a|.so)
来源:互联网 发布:电脑跑分软件 编辑:程序博客网 时间:2024/05/29 16:12
动态库/静态库(.a|.so)
名词解析
.o
.C
.cpp
文件编译之后的中间文件 静态库 .a
相当于Windows
的Lib
文件,Obj文件的集合,(不便于更新扩展) 动态库 .so
相当于Windows
的Dll
文件,Obj文件链接的可执行文件(方便更新)延时加载: 在加载动态库时,不进行全部导入, 在调用API时,发现动态库没有加载,临时加载动态库
静态库生成
Ar文件打包Lib(.o文件)
t
查询Lib
中的Obj
列表 r
增加或替换Lib
中的Obj
文件 d
删除Lib
中的Obj
文件ar [option] [TargetFile(`.a`)] [SourceFile(`.o`)]
动态库生成
-fpic
选项, GCC编译位置无关的代码
gcc -g -c -fpic -Wall [SourceFile(*.c)] //编译生成地址无关的代码 gcc -g -shared [SourceFile(*.o)] [TargetFile(*.so)] //链接生成动态库
静态库使用
在连接的时候,把.a
文件直接当作Obj
链接到目标程序中
动态库使用
dlopen
相当于Windows
的LoadLibrary
功能, 加载一个动态库 dlsym
相当于Windows
的GetPorcAddress
功能, 获取动态库的一个导出函数的地址 dlclose
相当于Windows
的FreeLibrary
功能,卸载一个动态库 dlerror
获取一个动态库的错误信息, 相当于strerror
功能,返回一个字符串在
Android
系统中Libc.so
并没有导出dlopen
函数, 在libdl.so
文件中导出,需要手动链接libdl.so
搜索路径
system/lib
//系统Lib目录usr/lib
//用户Lib目录data/data/PacketName/lib
//包目录下的Lib目录
ReadElf
命令 功能 -d
查看导入模块(Type
字段为needed
则为导入库名) --dyn-syms
列入导入导出函数或数据(有偏移 有大小则为导出, 无大小则为导入)
动态库不导出函数
动态库的入口(无关导出与否,都会调用)
旧出入口: _init
: 加载动态库会调用 _fini
: 卸载动态库会调用
新出入口:
定义为入口函数的声明:__attribute__(([Type]))
Type字段
可选:ConStructor
(构造,_init
功能)与DeStructor
(析构,_fini
功能)
新出入口相对于旧出入口:函数命名更见灵活,被调用次数更多
Tips:
stat
结构的st_nLink
字段,表示是否为一个符号链接
getPwUid
获取用户名
getGrGid
获取组名
1 0
- Android 动态库/静态库(.a|.so)
- android编译openssl静态库.a 动态库.so
- 动态库so和静态库a
- 静态库.a和动态库.so
- so-a--linux---静态--动态--链接库
- [安卓]Android导入第三方静态库.a编译成动态库.so
- Android导入第三方静态库.a编译成动态库.so
- windows下使用cmake和ndk编译android所用动态库.so和静态库.a
- Android导入第三方静态库.a编译成动态库.so
- Android导入第三方静态库.a编译成动态库.so
- Android导入第三方静态库.a编译成动态库.so
- Android导入第三方静态库.a编译成动态库.so
- android 原生工程中集成第三方so动态库和.a静态库和apk
- Android导入第三方静态库.a编译成动态库.so
- gcc生成.a.so静态库和动态库文件
- linux中静态库(.a)和动态库(.so)
- gcc生成.a静态库和.so动态库文件
- 静态库*.a和动态库*.so生成及调用
- android监听虚拟键盘隐藏和显示事件
- VbScript脚本方式创建桌面快捷方式
- 计算表达式 栈
- 常用的推荐算法小结
- php删除数组中指定元素,自定义函数
- Android 动态库/静态库(.a|.so)
- Android NestedScrolling机制完全解析 带你玩转嵌套滑动
- springmvc json xml
- ZOJ2974-Just Pour the Water
- Struts2之Action的配置
- 仿射加密法
- VMware Workstation Pro的安装以及虚拟机的安装
- 开博第一篇
- Unity学习记录-摄像机的移动