У меня есть двоичный файл, который мне нужен для работы во встроенной системе, использующей uclibc, двоичный файл был скомпилирован для glibc, должно ли это работать?
Я получаю сообщение об ошибке, говорящее, что двоичный файл не существует, когда я пытаюсь его запустить, поэтому я проверил, каких библиотек не хватает.
libc6: /lib/x86_64-linux-gnu/libdl.so.2
libc6: /lib/x86_64-linux-gnu/librt.so.1
libc6: /lib/x86_64-linux-gnu/libm.so.6
libc6: /lib/x86_64-linux-gnu/libc.so.6
libc6: /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
libc6: /lib/x86_64-linux-gnu/libnsl.so.1
Я смог символически связать все это, кроме одной, с версией, которая у меня есть в моей системе (более старые версии, но я ожидаю, что это сработает, поскольку двоичному файлу не нужны эти новые версии):
libc6: /lib/x86_64-linux-gnu/libdl.so.2 --------------------- ln -s /lib/libdl-0.9.33.2.so libdl.so.2
libc6: /lib/x86_64-linux-gnu/librt.so.1 --------------------- ln -s /lib/librt-0.9.33.2.so librt.so.1
libc6: /lib/x86_64-linux-gnu/libm.so.6 --------------------- ln -s /lib/libm.so.0 libm.so.6
libc6: /lib/x86_64-linux-gnu/libc.so.6 --------------------- ln -s /lib/libc.so.0 libc.so.6
libc6: /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 ----------------
libc6: /lib/x86_64-linux-gnu/libnsl.so.1 --------------------- ln -s /lib/libnsl-0.9.33.2.so libnsl.so.1
ld-linux-x86-64.so.2
не существует (ни какой-либо библиотеки, на которую я мог бы указать, например, ld-2.19.so
, на которую он указывает на моем хост-компьютере), это специальный компоновщик glibc? У меня есть /lib/ld64-uClibc.so.0/
/ /lib/ld64-uClibc-0.9.33.2.so
, но символическая ссылка на это не имеет никакого эффекта (все еще получаю No such file or directory
), это вообще правильно или мне нужно как-то встроить ld-linux-x86-64.so.2
в систему?