Linux .so库的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux .so库的使用相关的知识,希望对你有一定的参考价值。

参考技术A 新建一个sort.c文件,写一个最简单的排序

使用 gcc -o libsort.so -fPIC -shared sort.c 产生libsort.so库。

.so库有两种调用方法:

新建main.c文件:

使用命令 gcc -o main main.c -lsort -L. 编译。

新建main2.c文件:

使用命令 gcc -o main2 main2.c -ldl 编译。动态加载.so库的话需要-ldl。
运行./main2后输出递增序列,调用成功。

Android下查看SO库的依赖

参考技术A Android下查看SO库具体还依赖了哪些so库

ndk中的readelf
在ndk的toolchains 中可以找到对应的可执行程序
路径例如:
D:\AndroidSDK\ndk\17.2.4988734\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin 下 arm-linux-androideabi-readelf.exe

一般文件位置在system文件夹下,通过adb或者Android studio的Device File Explore 中可以查看到有lib跟lib64下大量的.so文件,如libmedia.so, libandroid.so, libc.so等

以上是关于Linux .so库的使用的主要内容,如果未能解决你的问题,请参考以下文章

关于linux下连接动态库问题

linux下,有几个.so。如何将这几个动态库编译成一个动态库

第1章 Linux系统编程入门:动态链接库的创建和使用

linux动态库的种种要点

Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf 动态库的后缀为*.so 静态库的后缀为 libxxx.a ldconfig 目录名

Linux动态库生成与使用指南