Russian Qt Forum
Ноябрь 02, 2024, 07:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Стандартные библиотеки Qt рядом с исполняемым файлом.  (Прочитано 5995 раз)
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 ....подключались по такому принципу? тоесть исполняемый файл ссылался на библиотеки из корнегого каталога программы.
« Последнее редактирование: Ноябрь 07, 2011, 10:03 от wolfut » Записан
asvil
Гость
« Ответ #1 : Ноябрь 07, 2011, 10:08 »

установить Qt из репозитариев.
установить libbass из nonfree репозитариев
Записан
wolfut
Гость
« Ответ #2 : Ноябрь 07, 2011, 10:32 »

Как это связано с установкой из репозитория? Мне нужно это для релиза ПО, для удобного распространения
Записан
asvil
Гость
« Ответ #3 : Ноябрь 07, 2011, 11:01 »

Для удобного распространения предназначены репозитарии.
Записан
wolfut
Гость
« Ответ #4 : Ноябрь 07, 2011, 12:57 »

Не спорю, но моя программа нужна для управления устройством и будет поставляется со вместо с ним
Записан
asvil
Гость
« Ответ #5 : Ноябрь 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=
}
Записан
SASA
Гость
« Ответ #6 : Ноябрь 07, 2011, 17:03 »

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

Положить их туда же. Я списал с QtCreator - и все работает.
Записан
andrew.k
Гость
« Ответ #7 : Ноябрь 07, 2011, 17:25 »

LD_LIBRARY_PATH по-другому никак.
Линукс не ищет либы в текущей директории.
Назови свой бинарник program.bin рядом положи скрипт для запуска в котором задается LP_LIBRARY_PATH какую ты хочешь. и назови его program.
Записан
wolfut
Гость
« Ответ #8 : Ноябрь 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=
}

помог и не нужно никаких скриптов для запуска
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 21.