تركيب ثنائي التي سبق إنشاؤها على الروبوت: "لم يتم العثور"

StackOverflow https://stackoverflow.com/questions/1043257

سؤال

وأنا أحاول تثبيت ثنائي التي سبق إنشاؤها في صورة مخصصة الروبوت. لذلك لقد نسخه إلى دليل جديد في prebuilt/android-arm/ مع ملف Android.mk مشابهة لهذه واحدة:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := binary_name
LOCAL_MODULE := binary_name
LOCAL_MODULE_CLASS := EXECUTABLES
include $(BUILD_PREBUILT)

وحتى لو كنت تشغيل make system_image binary_name، يتم نسخ ملف ثنائي ل/bin/ في صورة النظام. وإذا قمت بتشغيل المحاكي أستطيع أن أرى ملف ثنائي في /system/bin. الأذونات هي نفس الملفات التنفيذية الأخرى (-rwxr-xr-x)، وفقا لfile، وهذا هو ثنائي ARM (ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped).

ولكن عندما تشغيله على المحاكي، فإنه يقول:

# binary_name
binary_name: not found

ولقد straced ذلك وهذا ما أستطيع أن أرى:

# strace binary_name
execve("/system/bin/binary_name", ["binary_name"], [/* 9 vars */]) = -1 ENOENT (No such file or directory)
write(2, "strace: exec", 12strace: exec)            = 12
write(2, ": ", 2: )                       = 2
write(2, "No such file or directory", 25No such file or directory) = 25
write(2, "\n", 1
)                       = 1
io_submit(1, -1344063348, {...} <unfinished ... exit status 1>

ولكن الملف هو هناك، وstrace غير قادرة على العثور عليه.

وأي فكرة عما يمكن أن يحدث؟

<القوي> UPDATE : لوكما يقول كريستوف، وربما هذا هو مشكلة ربط حيوي، ولكن ليس لدي LDD لالروبوت ARM ...

هل كانت مفيدة؟

المحلول

ولعل بعض المكتبات الديناميكية المطلوبة لا يمكن العثور عليه.

وحاول "LDD binary_name '

والناتج ينبغي أن ننظر قليلا مثل هذا إذا يمكن الاطلاع على جميع المكتبات. المكتبات في عداد المفقودين يجب أن تحمل علامات واضحة.

linux-gate.so.1 =>  (0xb7fbf000)
libcap.so.2 => /lib/libcap.so.2 (0xb7fa7000)
libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7fa3000)
libncursesw.so.5 => /lib/libncursesw.so.5 (0xb7f64000)
libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb7f3e000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7dde000)
libattr.so.1 => /lib/libattr.so.1 (0xb7dd9000)
/lib/ld-linux.so.2 (0xb7fc0000)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top