LINUX.ORG.RU

binary-or-shlib-defines-rpath while making deb package

 , , , ,


1

1

Привет, сижу на Ubuntu 18.04. Написал простенький файловый менеджер на Qt. Пробую теперь сделать deb-пакет. Столкнулся с проблемой, а именно dll-библиотеки. Ситуация вот в чем - все Qt библиотеки у меня находятся в домашней директории(при установке указал домашнюю папку, не подумавши). После сборки деб-пакета проверил с помощью lintian, а он ругается что binary-or-shlib-defines-rpath usr/bin/FileManager /home/eukr/Qt/5.11.1/gcc_64/lib

Вооот, вычитал я в в гугле что нужно этот rpath нафиг убрать и использовал я для этого chrpath. Но вот если так сделать, то прога начинает вываливать мне, что не знает где эта библиотека - ./FileManager: error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory

Буду рад если подскажете в какую сторону дышать. К этому моменту спустя пару часов гугления, у меня начинаются подозрения, что я что-то делаю не так, и мне пора спать.

P.S. В проекте пакета я предусмотрел установку этих библиотек в /usr/lib/filemanager

А у тебя libQt5Widgets.so.5 в системе вообще есть?

Собирать лучше с системным Qt пакетом, а не с тем, что у тебя в /home находится. Собственно поэтому RPATH и пишется, насколько я понимаю.

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

А ещё вот что посоветую — собирать в chroot. Во-первых, случайно не угробишь свою систему. Во-вторых, повысишь шанс работы на чужих(мало ли что ты понаставил у себя).

a1batross ★★★★★ ()

dll-библиотеки

Что?

в какую сторону дышать

Если ты тягаешь Qt с собой, то дышать в сторону AppImage, а не Deb-пакетов. AppImage из Qt-приложения делается несколькими командами, что-то типа:

wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
chmod a+x linuxdeployqt-continuous-x86_64.AppImage
./linuxdeployqt-continuous-x86_64.AppImage your_executable -bundle-non-qt-libs
./linuxdeployqt-continuous-x86_64.AppImage your_executable -appimage

Если тебе нужен именно Deb-пакет, так собери свою программу со системным Qt'ом и сделай нормальный пакет, который будет зависеть от libqt5gui5, libqt5widgets5, libqt5core5a и. т. д, без всяких там костылей, которыми ты обмазался сейчас.

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

Ну все, спасибо. Разобрался. Qt по умолчанию использовал свой qmake, и нужно было просто поменять на системный.

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