LINUX.ORG.RU

error while loading shared libraries: libsfml-graphics.so.2.5: cannot open shared object file: No such file or directory

 , , ,


1

2

Здравствуйте! Знаю, что на форумах уже есть эта тема, но нигде я так и не понял как решить проблему. При запуске проекта с подключёнными к нему SFML библиотеками в Qt creator, я получаю в консоль ошибку, представленную в заглавии. Уже 100 раз переподключал все библиотеки, проверял наличие и доступность файла libsfml-graphics.so.2.5>, однако всё тщетно.

Посмотри зависимости этой библиотеки, т.е. вызови:

ldd /путь_до_библиотеки/libsfml-graphics.so.2.5

anonymous
()

проверял наличие и доступность файла libsfml-graphics.so.2.5

Так а где он располагается? Если где-то в директории с проектом, нужно определить переменную окружения LD_LIBRARY_PATH, либо прописывать путь к библиотекам через опцию линковщика, -Wl,-rpath.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от anonymous

Вот, что он выдаёт:

linux-vdso.so.1 (0x00007ffc1dcaf000) libsfml-window.so.2.5 => not found libsfml-system.so.2.5 => not found libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007ffa0342c000) libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007ffa030f4000) libXrandr.so.2 => /usr/lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007ffa02ee9000) libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007ffa02c35000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007ffa028ac000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ffa0250e000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ffa022f6000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ffa01f05000) libGLX.so.0 => /usr/lib/x86_64-linux-gnu/libGLX.so.0 (0x00007ffa01cd4000) libGLdispatch.so.0 => /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007ffa01a1e000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ffa017ff000) libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007ffa015d7000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ffa013d3000) libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007ffa011c1000) libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007ffa00fb7000) libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007ffa00d85000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ffa00b68000) /lib64/ld-linux-x86-64.so.2 (0x00007ffa03919000) libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007ffa00964000) libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007ffa0075e000) libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007ffa00549000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ffa00341000)

alex_fmv
() автор топика
Ответ на: комментарий от EXL

В этом основная проблема: где именно это прописывать, так как в Qt этих опций линковщика судя по всему просто не существует

alex_fmv
() автор топика
Ответ на: комментарий от anonymous

И да, я впредь буду аккуратнее, не знал про эти теги

alex_fmv
() автор топика

Прописывай путь до библиотеки в LD_LIBRARY_PATH перед запуском своей прогрммы, либо читай как настроить нормально поиск библиотек через ld.so.conf / ld.so.conf.d.

А лучше поставь пакет с библиотекой и её зависимостями.

anonymous
()
Ответ на: комментарий от anonymous

Вот примерно на этих местах я и не понимал, как мне реально что то сделать, так как поиск в интернете ничего особого не давал.

Как мне лучше всего прописать этот путь ?

alex_fmv
() автор топика
Ответ на: комментарий от alex_fmv

Лучше установить через пакетный менеджер пакет с этой библиотекой в систему стандартным способом.

anonymous
()
Ответ на: комментарий от alex_fmv

В этом основная проблема: где именно это прописывать, так как в Qt этих опций линковщика судя по всему просто не существует

Версия Qt Creator на английском языке.

Твой проект, вкладка «Projects» сбоку, нажимаешь вкладку Run (рядом с Build), переходишь в Run Environment, жмёшь Details, находишь LD_LIBRARY_PATH, добавляешь через двоеточие путь к директории с либами:

/usr/lib:/home/grub_666/SFML-2.5.1/lib/

Но лучше всего поставить из пакетов дистра этот SFML и его dev-пакет.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

Не знаю, что конкретно из всего вышеописанного мне помогло, но теперь всё работает, и я очень благодарен

alex_fmv
() автор топика
Ответ на: комментарий от alex_fmv

Не знаю, что конкретно из всего вышеописанного мне помогло

Так а что ты сделал? Пакет SMFL из репозитория установил? LD_LIBRARY_PATH прописал в Qt Creator? Опцию -rpath внёс в *.pro файл?

Всё это разные методы решения твоей проблемы.

EXL ★★★★★
()
Ответ на: комментарий от alex_fmv

Благодарю за всю оказанную помощь, я бы в одиночку не српавился

alex_fmv
() автор топика
Ответ на: комментарий от EXL

Начал копаться по указанным выше настройкам, нашёл LD_LIBRARY_PATH, неизвестно какими наборами действий получил рабочее решение

alex_fmv
() автор топика
Ответ на: комментарий от alex_fmv

неизвестно какими наборами действий получил рабочее решение

Так ты детерминируй решение проблемы. Проведи исследование и определи что тебе помогло.

Напиши решение. Возможно это поможет тем людям, которые столкнутся с похожей проблемой и найдут твою тему здесь с помощью поисковиков.

EXL ★★★★★
()

while [ ! insight ]; do man ld; done

pon4ik ★★★★★
()

Проблемы две:

1. Пути к библиотекам

2. Тип библиотеки. Как ни странно, но в этой ситуации тоже возвращается ошибка «нет файла» ...

cvv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.