Android下没有ldd可以使用,在进行ndk开发的时候,检查库的依赖项特别麻烦。有两个解决方案:

1、将linux的的ldd移植过去。因为android也是基于linux的,所以将ldd移植过去是完全可能的,google一下吧,这不是本文的重点;

2、现成的。ndk已经提供了工具,在ubuntu下执行locate readelf,你会发现有这些输出:

/mydroid/external/elfutils/src/readelf.c

/mydroid/prebuilt/darwin-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-readelf

/mydroid/prebuilt/darwin-x86/toolchain/arm-eabi-4.2.1/man/man1/arm-eabi-readelf.1

/mydroid/prebuilt/darwin-x86/toolchain/arm-eabi-4.3.1/bin/arm-eabi-readelf

/mydroid/prebuilt/darwin-x86/toolchain/arm-eabi-4.3.1/man/man1/arm-eabi-readelf.1

/mydroid/prebuilt/darwin-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-readelf

/mydroid/prebuilt/darwin-x86/toolchain/arm-eabi-4.4.0/man/man1/arm-eabi-readelf.1

/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-readelf

/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/man/man1/arm-eabi-readelf.1

/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/arm-eabi-readelf

/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/man/man1/arm-eabi-readelf.1

/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-readelf

/mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/man/man1/arm-eabi-readelf.1

/mydroid/prebuilt/linux-x86/toolchain/i686-unknown-linux-gnu-4.2.1/bin/i686-unknown-linux-gnu-readelf

/mydroid/prebuilt/linux-x86/toolchain/i686-unknown-linux-gnu-4.2.1/man/man1/i686-unknown-linux-gnu-readelf.1

/mydroid/prebuilt/linux-x86/toolchain/sh-4.3.3/bin/sh-linux-gnu-readelf

/usr/android/android-ndk-r4b/build/prebuilt/linux-x86/arm-eabi-4.2.1/bin/arm-eabi-readelf

/usr/android/android-ndk-r4b/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/arm-eabi-readelf

/usr/bin/readelf

/usr/share/man/man1/readelf.1.gz

加粗的部分就是你可以使用的工具了。

测试一下:

当你完成android的编译后,测试如下:

root@dylan-ubuntu:/mydroid/out/target/product/generic/system/bin# /usr/android/android-ndk-r4b/build/prebuilt/linux-x86/arm-eabi-4.2.1/bin/arm-eabi-readelf -d test_pvauthorengine

Dynamic section at offset 0x20b00 contains 26 entries:

Tag Type Name/Value

0x00000001 (NEEDED) Shared library: [libopencore_author.so]

0x00000001 (NEEDED) Shared library: [libopencore_common.so]

0x00000001 (NEEDED) Shared library: [libdl.so]

0x00000001 (NEEDED) Shared library: [libc.so]

0x00000001 (NEEDED) Shared library: [libstdc++.so]

0x00000001 (NEEDED) Shared library: [libm.so]

0x00000020 (PREINIT_ARRAY) 0x28000

0x00000021 (PREINIT_ARRAYSZ) 0x8

0x00000019 (INIT_ARRAY) 0x28008

0x0000001b (INIT_ARRAYSZ) 8 (bytes)

0x0000001a (FINI_ARRAY) 0x28010

0x0000001c (FINI_ARRAYSZ) 8 (bytes)

0x00000004 (HASH) 0x8108

0x00000005 (STRTAB) 0x8fb0

0x00000006 (SYMTAB) 0x85a0

0x0000000a (STRSZ) 4570 (bytes)

0x0000000b (SYMENT) 16 (bytes)

0x00000015 (DEBUG) 0x0

0x00000003 (PLTGOT) 0x28bf8

0x00000002 (PLTRELSZ) 1144 (bytes)

0x00000014 (PLTREL) REL

0x00000017 (JMPREL) 0xa19c

0x00000011 (REL) 0xa18c

0x00000012 (RELSZ) 16 (bytes)

0x00000013 (RELENT) 8 (bytes)

0x00000000 (NULL) 0x0

root@dylan-ubuntu:/mydroid/out/target/product/generic/obj/lib# /usr/android/android-ndk-r4b/build/prebuilt/linux-x86/arm-eabi-4.2.1/bin/arm-eabi-readelf -d libopencore_common.so

Dynamic section at offset 0xcc448 contains 36 entries:

Tag Type Name/Value

0x00000001 (NEEDED) Shared library: [libutils.so]

0x00000001 (NEEDED) Shared library: [libcutils.so]

0x00000001 (NEEDED) Shared library: [libui.so]

0x00000001 (NEEDED) Shared library: [libhardware.so]

0x00000001 (NEEDED) Shared library: [libandroid_runtime.so]

0x00000001 (NEEDED) Shared library: [libdrm1.so]

0x00000001 (NEEDED) Shared library: [libmedia.so]

0x00000001 (NEEDED) Shared library: [libskia.so]

0x00000001 (NEEDED) Shared library: [libvorbisidec.so]

0x00000001 (NEEDED) Shared library: [libsonivox.so]

0x00000001 (NEEDED) Shared library: [liblog.so]

0x00000001 (NEEDED) Shared library: [libicuuc.so]

0x00000001 (NEEDED) Shared library: [libcamera_client.so]

0x00000001 (NEEDED) Shared library: [libsurfaceflinger_client.so]

0x00000001 (NEEDED) Shared library: [libdl.so]

0x00000001 (NEEDED) Shared library: [libc.so]

0x00000001 (NEEDED) Shared library: [libstdc++.so]

0x00000001 (NEEDED) Shared library: [libm.so]

0x0000000e (SONAME) Library soname: [libopencore_common.so]

0x00000010 (SYMBOLIC) 0x0

0x00000019 (INIT_ARRAY) 0xc7000

0x0000001b (INIT_ARRAYSZ) 16 (bytes)

0x00000004 (HASH) 0xb4

0x00000005 (STRTAB) 0xc6fc

0x00000006 (SYMTAB) 0x420c

0x0000000a (STRSZ) 86133 (bytes)

0x0000000b (SYMENT) 16 (bytes)

0x00000003 (PLTGOT) 0xcc588

0x00000002 (PLTRELSZ) 1032 (bytes)

0x00000014 (PLTREL) REL

0x00000017 (JMPREL) 0x22144

0x00000011 (REL) 0x21774

0x00000012 (RELSZ) 2512 (bytes)

0x00000013 (RELENT) 8 (bytes)

0x6ffffffa (RELCOUNT) 4012

0x00000000 (NULL)

更多相关文章

  1. html5游戏移植到android并打包成apk,加广告《二》
  2. Android调试工具adb的高逼格使用方式
  3. Android(安卓)调试模式工具的Stetho
  4. 浅谈J2me游戏如何快速移植到Android
  5. Android(安卓)工具
  6. 浅谈J2me游戏如何快速移植到Android
  7. Android移植到mini2440(进行中)
  8. android adb 工具
  9. 深入浅出 - Android系统移植与平台开发(六)- 为Android启动加速

随机推荐

  1. 转行Android后第一次面试某鹅被坑,那些一
  2. Android中图片实现按钮点击效果
  3. android:layout_marginLeft指该控件距离
  4. 对Android初学者学习中的几点建议
  5. Transformer Prime 变形平板:10 寸 Super
  6. 关于Android进程知识,你需要知道这些(一)
  7. Android(安卓)企业微信登录 接入指南
  8. Android(安卓)Q 适配详细操作
  9. Android(安卓)中如何将带有html格式的文
  10. 安卓端app开发!连续四年百度Android岗必问