linux - Installing a prebuilt binary on Android: "not found" -
I am trying to install a prebalt binary in a custom Android image. For this I have copied it to a new directory in the Android.mk
file with prebuilt / android-arm /
:
LOCAL_PATH: = are $ (call my-dir) $ include (CLEAR_VARS) LOCAL_SRC_FILES: = binary_name LOCAL_MODULE: = binary_name LOCAL_MODULE_CLASS: = executables include $ (BUILD_PREBUILT)
so if I run Make system_image binary_name
, the binary file is copied to / bin /
in the system image. And if I run the emulator, I can see the binary file in / system / bin
. ( ELF 32-bit permissions, other executables (
) but when I run on the emulator, it says:. -rwxr-XR-x
) and are the same as file
, LSB executable by the one hand is binary, ARM, version 1 (SysV), dynamically connected (uses libs), stripped
# binary_name binary_name: not found
I've straced it and what I can see:
# Strace binary_name execve ("/ system / bin / binary_name", ["binary_name"], [/ * 9 wars * /]) -1 - write ENOENT (such a file or directory) (2, "strace: executive", 12strace Writing: (2, "2 \") write = 2 (2, ":", 2 :) = 2, (2, "no such file or directory", 25 such a file or directory) = 25 (2, "\ n" 1) = 1 io_submit (1, - + 1344063348, {...} & lt; incomplete ... exit position 1>.
UPDATE : As Christophe says, This is probably the problem of dynamic linking, but I do not have an LDD for Android ARM ...
Maybe some required dynamic libraries can not be found.
Try 'ldd binary_name'
The output should look like this if all the libraries can be found. Missing libraries should be clearly marked.
linux-gate.so.1 = & gt; (0xb7fbf000) libcap.so.2 = & gt; /lib/libcap.so.2 (0xb7fa7000) libdl.so.2 = & gt; /lib/i686/cmov/libdl.so.2 (0xb7fa3000) libncursesw.so.5 = & gt; /lib/libncursesw.so.5 (0xb7f64000) libm.so.6 = & gt; /lib/i686/cmov/libm.so.6 (0xb7f3e000) libc.so.6 = & gt; /lib/i686/cmov/libc.so.6 (0xb7dde000) libattr.so.1 = & gt; /lib/libattr.so.1 (0xb7dd9000) /lib/ld-linux.so.2 (0xb7fc0000)
Comments
Post a Comment