Приложение не может найти библиотеки, хотя они существуют [duplicate]

На этот вопрос уже есть ответ здесь:

Я пытаюсь запустить приложение (назовем его test), но оно не работает, выдавая следующую ошибку:

./test
./test: error while loading shared libraries: libuuid.so.1: cannot open shared object file: No such file or directory

Хотя эта библиотека существует:

locate libuuid.so.1
/lib/x86_64-linux-gnu/libuuid.so.1
/lib/x86_64-linux-gnu/libuuid.so.1.3.0

Она также может быть найдена при использовании sudo ldconfig -v в той же папке.

Запуск ldd на приложении дает следующую информацию:

ldd test 
linux-gate.so.1 =>  (0xf76fe000)
libsteam_api.so => ./libsteam_api.so (0xf7665000)
libcrypto.so.1.0.0 => ./libcrypto.so.1.0.0 (0xf74ba000)
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf736d000)
libGL.so.1 => /usr/lib/i386-linux-gnu/mesa/libGL.so.1 (0xf730d000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf72f3000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf72d7000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf72ce000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf72c8000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7282000)
libuuid.so.1 => not found
libc++.so.1 => ./libc++.so.1 (0xf71d8000)
libcxxrt.so => ./libcxxrt.so (0xf71b9000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7008000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf6feb000)
libiconv.so.2 => ./libiconv.so.2 (0xf6f07000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf6e1e000)
libasound.so.2 => not found
libssl.so.1.0.0 => ./libssl.so.1.0.0 (0xf6dc7000)
libopenal.so.1 => not found
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf6da5000)
libglapi.so.0 => /usr/lib/i386-linux-gnu/libglapi.so.0 (0xf6d8d000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf6d7a000)
libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xf6d75000)
libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xf6d6f000)
libX11-xcb.so.1 => /usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xf6d6c000)
libxcb-glx.so.0 => /usr/lib/i386-linux-gnu/libxcb-glx.so.0 (0xf6d54000)
libxcb-dri2.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri2.so.0 (0xf6d4e000)
libxcb-dri3.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri3.so.0 (0xf6d49000)
libxcb-present.so.0 => /usr/lib/i386-linux-gnu/libxcb-present.so.0 (0xf6d45000)
libxcb-sync.so.1 => /usr/lib/i386-linux-gnu/libxcb-sync.so.1 (0xf6d3e000)
libxshmfence.so.1 => /usr/lib/i386-linux-gnu/libxshmfence.so.1 (0xf6d3b000)
libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xf6d35000)
libdrm.so.2 => /usr/lib/i386-linux-gnu/libdrm.so.2 (0xf6d27000)
/lib/ld-linux.so.2 (0xf76ff000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf6d23000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf6d1c000)

Таким образом, мне не хватает 3 библиотек, хотя все они могут быть найдены с помощью locate или sudo ldconfig -v.

Я попробовал использовать sudo ldconfig, и это ничего не изменило. Я также пробовал установить LD_LIBRARY_PATH в каталог библиотеки.

4
задан 21 October 2014 в 22:15

1 ответ

Я почти уверен, что Вы получаете эту ошибку, потому что Вы пытаетесь выполнить 32-разрядное (libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6) исполняемый файл на 64-разрядном (/lib/x86_64-linux-gnu/libuuid.so.1) операционная система. Выполненный file test для проверки этого. Таким образом, следующий Q& A может помочь Вам:

2
ответ дан 17 November 2019 в 15:21

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

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