【Build】Linux / Android 动态库常用操作方法 查找、查看依赖、版本,pkg-config 用法

Linux

快速查找机器上的库

ldconfig -p | grep <lib_name>

ldconfig -p 会打印出当前系统已经安装的动态库信息,然后使用grep找你的lib即可

查看库是否存在

pkg-config --exists <lib_name> && echo $? 如果返回 0,则库存在;否则,库不存在(或者说,未被 pkg-config 识别)。

查看库的依赖

readelf -d <lib_name> 该命令查看库依赖哪些库,但不能查看它依赖的库存放在机器的什么位置
ldd <lib_name> 该命令能看到库依赖的那些库的具体路径及名称
pkg-config --libs <lib_name> 能看到当你引用该库时应该添加的编译选项是什么

查看 Android 库的依赖

使用位于 ndk 目录下的工具,例如
~/Android/ndk/android-ndk-r19c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-readelf -d <lib_name>
也可以直接使用 readelf 命令。

查看库的版本

使用 readelf 命令
readelf -h <lib_name> 该命令将输出一些结果,其中
Class: ELF64 Class: ELF32 标识了库运行的机器位数;
Machine 标识了库运行的机器,Linux 为 Advanced Micro Devices x86-64,32 位 Android 为 ARM,64 位 Android 为 AArch64
使用 pkg-config 命令
pkg-config --modversion <lib_name> 可以打印当前库的版本

Windows

查看库的依赖

可以直接使用 readelf 命令
readelf -d <lib_name>

查看库的版本

可以直接使用 readelf 命令
readelf -h <lib_name>


版权声明:本文为u014248312原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。