Название: не работает qt-эшное приложение Отправлено: juvf от Октябрь 26, 2009, 16:16 Собрал свежую Qt4.5.3 из исходников с ключами
Код: ./configure -prefix /usr/local/Trolltech/Qt4-5.3-static \ Собрал приложение с помощью /usr/local/Trolltech/Qt4-5.3-static/bin/qmake. Приложение собралось без ошибок. Запускаю, получаю ошибку Код: # ./myProg Что за libQtSvg.so.4? У меня программа собрана со статическими библиотеками. Какие ещё нужны библиотеки? Кто-нибудь может подсказать - в чем дело? ps Как только nokia стала управлять Qt, так с qt какие-то траблы начались. и sdk кривой и из исходников как-то криво всё идет. до нокии подобных проблем не было (( Название: Re: не работает qt-эшное приложение Отправлено: Пантер от Октябрь 26, 2009, 17:25 Попробуй скомпилить с опцией -no-svg.
Кстати, кто использует самостоятельную сборку под Линухой? Раньше у меня могло работать вместе несколько версий Qt, а теперь только та, которая из репозитария. Сейчас приложения выдают вот такую фигню: Код: Cannot mix incompatible Qt libraries Название: Re: не работает qt-эшное приложение Отправлено: juvf от Октябрь 27, 2009, 06:25 Цитировать Попробуй скомпилить с опцией -no-svg. Я в своей программе использую QGraphicsSvgItem и в QRenderer гружу svg файлы. Без svg ни как.Цитировать Раньше у меня могло работать вместе несколько версий Qt. Раньше у меня могло работать вместе несколько версий Qt Я использую самостоятельную. И под FreeBSD и под Линукс. Что значит "могло работать...Qt"? Асистент что ли? У меня до версии 4.3 (или 4.4) мои программы собирались, запускались и работали. Так же работали асистент, дезайнер, лингвист и демо. Начиная с версии 4.4 под FreeBSD перестал работать асистент и демо, a мои программы собирались и работали. Перешёл на линукс, т.к. 4.5.* под фри нокия не делает. Асистент собранный руками не работает. В линуксе асистент установленный из бинарника работает.Название: Re: не работает qt-эшное приложение Отправлено: Rcus от Октябрь 27, 2009, 06:31 Ну дык это... мейкфайлы же есть, g++ -v на крайний случай есть - всегда можно узнать что с чем слинковалось
Название: Re: не работает qt-эшное приложение Отправлено: juvf от Октябрь 27, 2009, 07:00 Ну дык это... мейкфайлы же есть, g++ -v на крайний случай есть - всегда можно узнать что с чем слинковалось эээээ,,,,, не понял,,,,,,,,, какие мейкфайлы? сборка qt? или сборка моей программы? Просмотрел их,,,,,, что там можно увидеть? могу закинуть в студиюНазвание: Re: не работает qt-эшное приложение Отправлено: Rcus от Октябрь 27, 2009, 07:37 В мейкфайлах для сборки приложения можно точно узнать какие ключи передаются компилятору. Добавление ключа -v (вроде именно так) заставляет gcc показывать детальные логи, в том числе полные пути файлов при компоновке.
Название: Re: не работает qt-эшное приложение Отправлено: shadone от Октябрь 27, 2009, 13:34 похоже что приложение не собрано статически.
проверить это можно с помощью команды file и ldd: Код: file ./myProg Код: ldd ./myProg Название: Re: не работает qt-эшное приложение Отправлено: Пантер от Октябрь 27, 2009, 17:35 Вот мой вывод ldd /opt/qt/4.6.0/bin/designer
Код: linux-vdso.so.1 => (0x00007fff56f09000) Код: ./configure \ Название: Re: не работает qt-эшное приложение Отправлено: shadone от Октябрь 27, 2009, 18:45 я вообще отвечал автору оригинального сообщения - juvf.
Вот мой вывод ldd /opt/qt/4.6.0/bin/designer Qt конфигурилась с такими опциями: Код: ./configure \ это другая проблема. нельзя смешивать библиотеки Qt разных версий. Используй LD_LIBRARY_PATH и qt.conf (http://doc.qt.nokia.com/4.6-snapshot/qt-conf.html) для указание пути до плагинов. Также надо заглянуть в ~/.config/Trolltech.conf и убедиться что там не указаны неправильные пути до плагинов. Название: Re: не работает qt-эшное приложение Отправлено: Пантер от Октябрь 27, 2009, 18:49 нельзя смешивать библиотеки Qt разных версий. Жаль, а раньше можно было. :( Спасибо за объяснение, а то я грешил на кривые руки.Название: Re: не работает qt-эшное приложение Отправлено: shadone от Октябрь 27, 2009, 19:36 нельзя смешивать библиотеки Qt разных версий. Жаль, а раньше можно было. :( Спасибо за объяснение, а то я грешил на кривые руки.Название: Re: не работает qt-эшное приложение Отправлено: juvf от Октябрь 30, 2009, 14:36 Меня эта проблема совсем устала. В день по 20 раз компиляю разные qt. исследую.
скачал последний Qt4.5.3. Собираю из исходников с опциями Код: ./configure -static -silent -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-db2 -no-sql-ibase \ после собираю своё приложение с использованием /usr/local/Trolltech/Qt4.5.3-static/bin/qmake. Запускаю ./myProg - получаю "libQtSvg.so.4: cannot open shared object file:" вот вывод file и ldd Код: juvf@juvf:~/work/prog/trunk/bin$ file ./prog У колеги qt установленно из sdk.bin. Т.е. у него собирается без статических библиотек. у него ldd показывает Код: libQtSvg.so.4 => /opt/qtsdk-2009.03/qt/lib/libQtSvn.so.4 (...) Код: libQtSvg.so.4 => not found ps Раньше было всё нормально. Поигрался с программами из репов в debian. Возможно какой-нибудь компонент удалил из системы. А какой??? Как бы понять, почему qtmake собирает приложение, не используя свои библиотеки, а пользует из /usr/lib? Почему статически не собирает программы? Может qt собирается не правильно? а как понять где грабля? Название: Re: не работает qt-эшное приложение Отправлено: Rcus от Октябрь 30, 2009, 17:19 Меня эта проблема совсем устала. В день по 20 раз компиляю разные qt. исследую. Не надо пересобирать просто потому что вы это можете. Я уже советовал вам посмотреть мейкфайлы. Еще есть команда qmake -query, но если вместо нее еще раз перекомпилировать Qt то лучше не станет :)Название: Re: не работает qt-эшное приложение Отправлено: juvf от Ноябрь 05, 2009, 14:29 Цитировать Я уже советовал вам посмотреть мейкфайлы. Мэйкфайлы ни чего толкового не сказали не сказали. Проблему решил. Всем спасибо!Решил проблему следующим образом: на др. машине (с мандривой) собрал qt из исходников. собрал приложение. Заработало. Перетащил Makefile для своей проги на свою эвм. Прога собралась, но работает криво. Перетащил собранное Qt на свою эвм и попытался собрать прогу с использование Qt собранной на др. машине (с мандривой). При линковке получил сообщения о недостающих библиотеках. Доставил пакеты с этими бибилиотеками libpng12-dev libfreetype-dev libsm-dev libxrender-dev libfontconfig1-dev libxext-dev libglib2.0-dev После этого прога заработала как надо. Но после сборки моей программы с помощью Qt, собранной на моей машине (до того как были установлены библиотеки) - прога не работала. Пересобрал заново Qt на своей машине - и всё заработало как надо. Очевидно если Qt было собрано без вышеуказанных библиотек в системе, то потом программы почему-то собирается на этом Qt и работают криво. ps нудно как-то!? извините, но по крайней меня для меня подсказка будет на будущее |