Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: NOs от Март 04, 2011, 10:56



Название: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 10:56
В общем собрал приложение подсунул в папку с бинарником все необходжимые либы и софтина стартует на другой машине та убунта 10.10 вроде но как тока доходит до загрузки драйвера БД пишет Driver not loaded (ibase) . На машине на которой все собирал все отлично. папка sqldrivers есть в которой соответствующий плагин лежит пробовал уже и скрипт писать который перед стартом устанавливал пути к либам не помогает. В общем как я понял не видит софтина мои компилиные либы а берет системные.
Код:
#!/bin/sh
# Стартуем софтинку
#export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib
LD_LIBRARY_PATH=lib:${LD_LIBRARY_PATH:+":$LD_LIBRARY_PATH"}
export LD_LIBRARY_PATH
echo $LD_LIBRARY_PATH
./myapp
exit 0

Как можно осуществлять перенос приложений в линуксе по аналогии с виндой что б подсунул нужные либы и все ок?


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Пантер от Март 04, 2011, 11:00
so'шка ibase есть в $PWD/lib?


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 11:06
libfbclient.so - есть


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Пантер от Март 04, 2011, 11:11
Замени в скрипте ./myapp на ldd ./myapp и посмотри откуда ноги растут.


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 11:17
Из /usr/lib все дергает. Как мне заставит софтину брать мои либы???вторые сутки не могу решить такую простую задачу


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Пантер от Март 04, 2011, 11:20
Я бы сделал так:
Код
Bash
#!/bin/sh
export LD_LIBRARY_PATH=./lib
./myapp
 


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 11:28
/usr/lib  - с вашим скриптом так же. и к тому переменная теперь вообще пустая


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Пантер от Март 04, 2011, 11:30
У меня работает. ЧЯДНТ?


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 11:33
У меня работает. ЧЯДНТ?
чего?


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Пантер от Март 04, 2011, 11:40
У меня такой запуск программы работает. ЧЯДНТ (http://lurkmore.ru/%D0%A7%D0%AF%D0%94%D0%9D%D0%A2)?


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 11:46
ахахахаха)))ясны))одним словом БЛЕАТЬ!!!))))


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 11:54
Я бы сделал так:
Код
Bash
#!/bin/sh
export LD_LIBRARY_PATH=./lib
./myapp
 

а ldd какие пути у Вас выдает???


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 12:03
вот что у меня
Код
Bash
nos@nos-desktop:/var/www/rel/release$ ./start.sh
./lib                      
./myapp:
linux-gate.so.1 =>  (0x0066c000)
libQtWebKit.so.4 => /usr/local/Trolltech/Qt-4.7.0/lib/libQtWebKit.so.4 (0x00b0c000)
libQtSql.so.4 => /usr/local/Trolltech/Qt-4.7.0/lib/libQtSql.so.4 (0x00110000)
libQtXml.so.4 => /usr/local/Trolltech/Qt-4.7.0/lib/libQtXml.so.4 (0x0033e000)
libQtGui.so.4 => /usr/local/Trolltech/Qt-4.7.0/lib/libQtGui.so.4 (0x0b9d6000)
libQtNetwork.so.4 => /usr/local/Trolltech/Qt-4.7.0/lib/libQtNetwork.so.4 (0x0015c000)
libQtCore.so.4 => /usr/local/Trolltech/Qt-4.7.0/lib/libQtCore.so.4 (0x00383000)
       .......и тд
 
 


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Пантер от Март 04, 2011, 12:07
Давай сюда вывод команд:
cat ./start.sh
ls ./lib


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 12:13
Код
Bash
#!/bin/sh
# Стартуем софтинку
#export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib
#LD_LIBRARY_PATH=lib:${LD_LIBRARY_PATH:+":$LD_LIBRARY_PATH"}
export LD_LIBRARY_PATH=$PWD/lib
echo $LD_LIBRARY_PATH
ldd $PWD/myapp
exit 0
 
 



Код
Bash
fbclient.lib          libicui18n.so.30.0  libQtCore.so.4.7    libQtNetwork.so        libQtWebKit.so.4.7
libfbclient.so        libicuuc.so         libQtCore.so.4.7.0  libQtNetwork.so.4      libQtWebKit.so.4.7.0
libfbclient.so.2      libicuuc.so.30      libQtDBus.so        libQtNetwork.so.4.7    libQtXml.so
libfbclient.so.2.1.3  libicuuc.so.30.0    libQtDBus.so.4      libQtNetwork.so.4.7.0  libQtXml.so.4
libfbembed.so         libphonon.so        libQtDBus.so.4.7    libQtSql.so            libQtXml.so.4.7
libicudata.so         libphonon.so.4      libQtDBus.so.4.7.0  libQtSql.so.4          libQtXml.so.4.7.0
libicudata.so.30      libphonon.so.4.4    libQtGui.so         libQtSql.so.4.7
libicudata.so.30.0    libphonon.so.4.4.0  libQtGui.so.4       libQtSql.so.4.7.0
libicui18n.so         libQtCore.so        libQtGui.so.4.7     libQtWebKit.so
libicui18n.so.30      libQtCore.so.4      libQtGui.so.4.7.0   libQtWebKit.so.4
 
 
 


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Пантер от Март 04, 2011, 12:23
А если просто в консоли набрать:
LD_LIBRARY_PATH=./lib ldd ./myapp


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: twp от Март 04, 2011, 12:26
наколька я понял проблема с загрузкой sql-драйвера, который скомпилен в виде плагина, а значит LD_LIBRARY_PATH здесь не причем. Для развертывания плагинов нужно руководствоваться этим документом http://doc.qt.nokia.com/latest/deployment-plugins.html (http://doc.qt.nokia.com/latest/deployment-plugins.html)


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 12:30
А если просто в консоли набрать:
LD_LIBRARY_PATH=./lib ldd ./myapp
Код
Bash
nos@nos-desktop:/var/www/rel/release$ LD_LIBRARY_PATH=./lib ldd ./myapp
linux-gate.so.1 =>  (0x00d72000)
libQtWebKit.so.4 => /usr/local/Trolltech/Qt-4.7.0/lib/libQtWebKit.so.4 (0x00d73000)
libQtSql.so.4 => /usr/local/Trolltech/Qt-4.7.0/lib/libQtSql.so.4 (0x0079f000)
libQtXml.so.4 => /usr/local/Trolltech/Qt-4.7.0/lib/libQtXml.so.4 (0x00110000)
libQtGui.so.4 => /usr/local/Trolltech/Qt-4.7.0/lib/libQtGui.so.4 (0x0a282000)
libQtNetwork.so.4 => /usr/local/Trolltech/Qt-4.7.0/lib/libQtNetwork.so.4 (0x00913000)
libQtCore.so.4 => /usr/local/Trolltech/Qt-4.7.0/lib/libQtCore.so.4 (0x00155000)
libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x005c9.....

тоже самое в принципе


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Пантер от Март 04, 2011, 12:38
Мдя, хрень какая-то....


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 12:59
Как еще можно явно указать софтине дергать мои либы???может в проекте что прописать???


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: twp от Март 04, 2011, 14:16
я ссылку для кого кинул, неужели так влом почитать, заодно подтянуть инглиш  ;) Там приведено несколько способов, в частности:
Цитировать
If you want Qt to look in additional places you can add as many paths as you need with calls to QCoreApplication::addLibraryPath(). And if you want to set your own path or paths you can use QCoreApplication::setLibraryPaths(). You can also use a qt.conf file to override the hard-coded paths that are compiled into the Qt library. For more information, see the Using qt.conf documentation. Yet another possibility is to set the QT_PLUGIN_PATH environment variable before running the application. If set, Qt will look for plugins in the paths (separated by the system path separator) specified in the variable.


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Пантер от Март 04, 2011, 14:23
twp, если бы ты внимательно почитал, то понял бы, что дело не только в этом.


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 14:36
я ссылку для кого кинул, неужели так влом почитать, заодно подтянуть инглиш  ;) Там приведено несколько способов, в частности:
Цитировать
If you want Qt to look in additional places you can add as many paths as you need with calls to QCoreApplication::addLibraryPath(). And if you want to set your own path or paths you can use QCoreApplication::setLibraryPaths(). You can also use a qt.conf file to override the hard-coded paths that are compiled into the Qt library. For more information, see the Using qt.conf documentation. Yet another possibility is to set the QT_PLUGIN_PATH environment variable before running the application. If set, Qt will look for plugins in the paths (separated by the system path separator) specified in the variable.
МММ я так взглядом окинул посморел в общих чертах что там написанно про директорию к плагину . QCoreApplication::addLibraryPath() не заметил этого . Щас посморю что это дело дает)))


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: twp от Март 04, 2011, 14:42
возможно я где-то и напутал. Но вижу что проблема в том что не загружается плагин. ldd тут не поможет ибо он показает зависимости для динамический либ, а плагин как, известно загружается средствами самой Qt. Стало быть проблема скорее всего в том, что не загружается плагин, или (что менее вероятно) плагин загружается, но он не видит либу драйвера ibase


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 14:48
возможно я где-то и напутал. Но вижу что проблема в том что не загружается плагин. ldd тут не поможет ибо он показает зависимости для динамический либ, а плагин как, известно загружается средствами самой Qt. Стало быть проблема скорее всего в том, что не загружается плагин, или (что менее вероятно) плагин загружается, но он не видит либу драйвера ibase
Нееее суть проблемы в том что моя софтина дергает системные либы а не те которые рядом с бинарником и тут не помогает установка переменных окружения.


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Пантер от Март 04, 2011, 14:53
А по плугину да, twp правильно подметил. Но сначала нужно разобраться с нетянущимися либами.


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: twp от Март 04, 2011, 15:39
так может просто использовать системные либы, и обеспеспесить работу плугина (если конечно есть бинарнач совместимость). И походу в системе по каким-то причинам игнорируется LD_LIBRARY_PATH. Вот например что сказано в асисстенте:
Цитировать
You can write a startup script for your application, where you modify the dynamic linker configuration (e.g. adding your application's directory to the LD_LIBRARY_PATH environment variable. Note: If your application will be running with "Set user ID on execution," and if it will be owned by root, then LD_LIBRARY_PATH will be ignored on some platforms. In this case, use of the LD_LIBRARY_PATH approach is not an option).
Может причина в другом. Но там указан еще один способ как заставить грузить свои либы:
Цитировать
You can pass a predetermined path to the -rpath command-line option when linking the application. This will tell the dynamic linker to look in this directory when starting your application.


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Пантер от Март 04, 2011, 15:44
Да, в -rpath может быть проблема. Попробуй пересобрать кьют, отключив эту опцию.


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 16:07
в общем с либами проблема решилась при копировании линки so.4 не копировались вот и соответственно софтина дергала системные либы так как не находила их в папке. Терь все ок берет либы из моей папки lib. Но драйвер ibase все равно не грузиться. То есть как я понимаю терь проблема в плагине???


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Пантер от Март 04, 2011, 16:08
Теперь да. twp привел решение.

QCoreApplication::addLibraryPath (app.applicationDirPath () + "/lib/");


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 16:28
Ураааа Драйвер грузится)))Тока терь ошибка Unable to complete network requests to host "localhost"


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Пантер от Март 04, 2011, 16:31
Ну, это уже дело в сервере.


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 16:34
А под линуксом возможен вариант эмбендед как в винде у меня база в локальном файле. Виндовый аналог софтины пашет а вот с линуксовым куча проблем))


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 16:34
или все же нужно сервер ставить???


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Пантер от Март 04, 2011, 16:36
Не ту so подкинул?


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 16:38
Не ту so подкинул?
можно чуть подробней???


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Пантер от Март 04, 2011, 16:40
Ну, там же для embedded отдельная so, которую нужно переименовать. По крайней мере в винде так.


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 04, 2011, 17:14
в линухе такое не прокатывает


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: NOs от Март 09, 2011, 18:06
Победил)Спасибо всем)


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Пантер от Март 09, 2011, 20:32
Освети решение.


Название: Re: UBUNTU 10.04 QT SDK 4.7 проблемы при переносе на другую машину
Отправлено: Prm от Март 15, 2011, 07:41
Рядом с исполняемым файлом программы кладу qt.conf, папку с необходимыми либами и плагинами. Что под виндой, что под линуксом (Ubuntu 10.10) - все работает.