Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: wolfut от Ноябрь 07, 2011, 09:22



Название: Стандартные библиотеки Qt рядом с исполняемым файлом.
Отправлено: wolfut от Ноябрь 07, 2011, 09:22
Доброго времени суток!

В своём проекте я использую сторонию библиотеку, пишу в .pro файле:
Код:
LIBS += libbass.so

и кладу библиотеку рядом с проектом (.pro) и исполняемым файлом.
Проект компилируется, но не запускается, не находит libbass.so.
ldd выдаёт:
   
Код:
libbass.so => not found
libQtSql.so.4 => /home/or/QtSDK/Desktop/Qt/474/gcc/lib/libQtSql.so.4 (0x00b0b000)
libQtGui.so.4 => /home/or/QtSDK/Desktop/Qt/474/gcc/lib/libQtGui.so.4 (0x00d6c000)
libQtCore.so.4 => /home/or/QtSDK/Desktop/Qt/474/gcc/lib/libQtCore.so.4 (0x00811000)
       ..........

Для запуска приложения же я использую скрипт вида:
Код:
#!/bin/bash 
 LD_LIBRARY_PATH=:$PWDTest1
 export LD_LIBRARY_PATH
 exec $PWD/Test

Как сделать так, чтобы не только моя библиотека, но стандартные Qt, libQtGui.so.4 ....подключались по такому принципу? тоесть исполняемый файл ссылался на библиотеки из корнегого каталога программы.


Название: Re: Стандартные библиотеки Qt рядом с исполняемым файлом.
Отправлено: asvil от Ноябрь 07, 2011, 10:08
установить Qt из репозитариев.
установить libbass из nonfree репозитариев


Название: Re: Стандартные библиотеки Qt рядом с исполняемым файлом.
Отправлено: wolfut от Ноябрь 07, 2011, 10:32
Как это связано с установкой из репозитория? Мне нужно это для релиза ПО, для удобного распространения


Название: Re: Стандартные библиотеки Qt рядом с исполняемым файлом.
Отправлено: asvil от Ноябрь 07, 2011, 11:01
Для удобного распространения предназначены репозитарии.


Название: Re: Стандартные библиотеки Qt рядом с исполняемым файлом.
Отправлено: wolfut от Ноябрь 07, 2011, 12:57
Не спорю, но моя программа нужна для управления устройством и будет поставляется со вместо с ним


Название: Re: Стандартные библиотеки Qt рядом с исполняемым файлом.
Отправлено: asvil от Ноябрь 07, 2011, 14:01
http://developer.qt.nokia.com/forums/viewthread/1872
Код:
unix:!mac{
  QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN
  QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/lib
  QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/libs
  QMAKE_RPATH=
}


Название: Re: Стандартные библиотеки Qt рядом с исполняемым файлом.
Отправлено: SASA от Ноябрь 07, 2011, 17:03
Как сделать так, чтобы не только моя библиотека, но стандартные Qt, libQtGui.so.4 ....подключались по такому принципу? тоесть исполняемый файл ссылался на библиотеки из корнегого каталога программы.

Положить их туда же. Я списал с QtCreator - и все работает.


Название: Re: Стандартные библиотеки Qt рядом с исполняемым файлом.
Отправлено: andrew.k от Ноябрь 07, 2011, 17:25
LD_LIBRARY_PATH по-другому никак.
Линукс не ищет либы в текущей директории.
Назови свой бинарник program.bin рядом положи скрипт для запуска в котором задается LP_LIBRARY_PATH какую ты хочешь. и назови его program.


Название: Re: Стандартные библиотеки Qt рядом с исполняемым файлом.
Отправлено: wolfut от Ноябрь 10, 2011, 09:44
Спасибо, код

Код:
unix:!mac{
  QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN
  QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/lib
  QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/libs
  QMAKE_RPATH=
}

помог и не нужно никаких скриптов для запуска