【1】, I have a linux os environment, which is based on arm32(qemu similute).
【2】, There are two file in / directory. One is "init", and one is "nesoft", but i can only run "init", and i can not run "nesoft":
/ #./init This is initramfs - init !!!
/ #./nesoft -/bin/sh: ./nesoft: not found
【3】, The two file have dirrerence below: zhang@zhang-Virtual-Machine:~/src/qemu/third_patry/rootfs/busybox/rootfs$ file init init: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, for GNU/Linux 3.2.0, BuildID[sha1]=08c7f187d91207660caa2db0101980a1f4b12716, notd
zhang@zhang-Virtual-Machine:~/src/qemu/third_patry/rootfs/busybox/rootfs$ file nesoft nesoft: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux.so.3, for GNU/Linux 4.4.0, stripped
【4】, I have search,so i think "LSB shared object" should run as executable file (I learn form https://unix.stackexchange.com/questions/472449/what-is-the-difference-between-lsb-executable-et-exec-and-lsb-shared-object ) BUT, why it still does not run?
【END】 Has anyone meet this before, and know why?
The main difference I see that second file is dynamically linked which means it requires library .so
files to execute. I suppose it just that can't load the dependency.
Try running ldd
(or export LD_TRACE_LOADED_OBJECTS=1
before running your binary since ldd
may not be on busybox
) to see which library is missing.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.