ARM 32-битный ELF не выполняется с использованием qemu-arm

На моем компьютере с Ubuntu 18.04 я использую qemu-arm для выполнения 32-битного файла ELF для платформы ARM, как показано ниже:

$ file bin
bin: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.2.0, BuildID[sha1]=5018caf41114f911f0a0fd09c4f9a0bb1191c87a, not stripped

$ qemu-arm bin
bin: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

На другом компьютере с процессором ARM я получаю следующий вывод, запустив ldd в двоичном файле:

$ ldd bin
    libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6e25000)
    /lib/ld-linux-armhf.so.3 (0xb6f11000)

На моем компьютере с Linux я установил: ld-linux-armhf.so.3 и он находится по пути: / usr / arm-linux -gnueabihf / lib / ld-linux-armhf.so.3

$ ls -l /usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.3
lrwxrwxrwx 1 root root 10 Feb 25  2014 /usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.3 -> ld-2.19.so

Я создал символическую ссылку:

$ sudo ln -s /usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.3 /lib/ld-linux-armhf.so.3

Однако даже тогда двоичный файл не выполняется, поскольку он не может найти и загрузить файл, libc.so.6.

Как мне решить эту проблему?

0
задан 19 May 2019 в 19:09

1 ответ

Префикс LD_LIBRARY_PATH с помощью / lib / arm-linux-gnueabihf: (или просто установите его в / lib / arm-linux-gnueabihf, если он пуст в строке, вызывая исполняемый файл:

LD_LIBRARY_PATH=/lib/arm-linux-gnueabihf qemu-arm bin

должен позволить исполняемому файлу найти файл.

0
ответ дан 19 May 2019 в 19:09

Другие вопросы по тегам:

Похожие вопросы: