Название: Почему работает после установки новой сборки? Отправлено: patison от Август 14, 2010, 13:52 Друзья, такой вопросик возник.
Понадобилось собрать статически qt (к этому моменту уже стояла обычная/динамическая сборка). Следуя инструкции, сконфигурировал сборку qt на static с префиксом нового пути (динамич версия находилась в /usr/local/Trolltech/Qt4.6.2) - /usr/local/Trolltech/Qt4.6.2_static . Так получилось, что в корне было мало места, потому оригинал сборки пришлось переместить в другое место. В результате получил статичную сборку в /usr/local/Trolltech/Qt4.6.2_static. Переменную $PATH не менял (остался путь к старой папки , которую я временно перенёс в другое место). Запускаю Creator, собираю проект - работает. Причём собирает не статически. Вопрос - почему работает?? зы есть подозрение что сборка находится где-то в другом месте, но тогда не понятно почему в $PATH нет ничего в этом плане. ззыы смутило так-же то, что динамич сборка занимала два гига с чем-то, а новая статическая - всего триста метров с небольшим. Название: Re: Почему работает после установки новой сборки? Отправлено: Mikhail от Август 14, 2010, 20:54 А кто кроме тебя может изменить $PATH ?
Какая Qt используеться в твоем QtCeator ? Вообще то для компиляции Qt необходимо установить QTDIR, откорректировать $PATH и только после этого проводить компиляцию, к тому же чистых исходников без Makefile-оф Название: Re: Почему работает после установки новой сборки? Отправлено: patison от Август 15, 2010, 01:51 Секундочку. Вообще-то по логике если изменить имя папки куда всё установлено (в моём случае - старую перенёс и новую поставил) - компиляция и линковка не должно проводиться и должна по логике выдаваться ошибка. Тем более что ни QTDIR ни PATH я не менял.
Цитировать Какая Qt используеться в твоем QtCeator ? А хз. Где посмотреть можно?По идее qt.4.6.2 Название: Re: Почему работает после установки новой сборки? Отправлено: Mikhail от Август 15, 2010, 21:51 Поподробнее пожалуйста.
Каким инструкция следовал? Конфигурировал и компилировал чисто исходники или предыдущую сборку? Остались ли предыдущие Makefile-ы? Откомпилированную программу запускал из QtCreator или из консоли? Название: Re: Почему работает после установки новой сборки? Отправлено: patison от Август 16, 2010, 23:48 - Следовал инструкциям отсюда - http://prog.org.ru/wiki/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B9_Qt_%D0%B2_Linux
- Конфигурировал и компилил сборку которую скачивал раньше. - ПО поводу предыдущих makefile-ов не уверен. Но перед сборкой делал make confclean. - Программу компилил, собирал и запускал прямо из QtCreator-a. зы сейчас осенило посмотреть откуда запускается QtCreator (на тулбаре создавал launcher). Запускается из папочки qtsdk. В этой папочке лежат папки bin/ lib/ и тд . В lib-e что интересно - *.so файлы. Вспомнил что когда-то качал с сайта SDK для linux. И видимо из него и запускается всё (отсюда и библиотеки берутся). Только вот не понятно в этом случае - как сделать что-бы собирались приложения статически! Т.к. насколько я помню - скачав sdk я его не конфигурировал и не собирал. Просто начал юзать QtCreator из коробки, так сказать... Название: Re: Почему работает после установки новой сборки? Отправлено: Mikhail от Август 17, 2010, 08:26 sdk не конфигурируется и не собирается. Там уже все в бинарниках.
Чтобы откомпилировать Qt статичски или динамически делай ВСЕ по той инструкции. Для начала скачайте исходные коды Qt и распакуйте их. Убедитесь, что динамическая версия Qt не установлена. Если она установлена, для начала прочтите раздел "Подсказки". Откройте консоль и перейдите в директорию с исходным кодом Qt. и далее по тексту инстукции. Я так и не понял о какой сборке вы говорите. Я так понял, что это не исходники. Название: Re: Почему работает после установки новой сборки? Отправлено: crossly от Август 17, 2010, 11:41 скажите qtcreator какую либу использовать для сборки.... и все...
Название: Re: Почему работает после установки новой сборки? Отправлено: patison от Август 17, 2010, 12:10 Цитировать sdk не конфигурируется и не собирается. Там уже все в бинарниках. Ну вот собсна и ответ, я думаю.А как быть в случае когда на машине уже лежит готовы sdk с creator-ом? Я могу скачать исходы qt, скомпилить статически, а потом скачать отдельно QtCreator , и он будет работать с этими статически собранными либами? crossly Каким образом? В настройках искал - ничё не нашёл. Название: Почему работает после установки новой сборки? Отправлено: Mikhail от Август 17, 2010, 12:29 Будет работать несомненно. Главное правильно скомпилировать Qt из исходников и в QtCreator выбрать. Смотри Инструменты-Параметры-Qt4 нажми + и укажи путь до qmake ( в каталоге bin ) нужной Qt. Все новые проекты будут использовать это умолчание. Изменить Qt для проекта - при открытом проекте нажать кнопку Проекты и изменить Профиль Qt по нажатии кнопки Управление. При изменении Профиля Qt для проекта необходимо его очистить и удалить мэйлфайлы. Затем можно компилировать.
Название: Re: Почему работает после установки новой сборки? Отправлено: patison от Август 17, 2010, 12:41 Спасибо, Михаил.
Т.к. Qt я уже собирал статически (см первые сообщения), то мне осталось только прописать путь до нужного qmake. Пересобрал проект, бинарник из 600кб превратился в 12мб , что означает что собрался он статически =)) Правда теперь вылезли мелкие траблы.. Например в трее не отображаюся картинки, которые находятся в ресурсах проекта.. Но это, думаю, поправимо. Пойду искать решение. Название: Re: Почему работает после установки новой сборки? Отправлено: crossly от Август 17, 2010, 15:14 возможно забыл вкомпилировать поддержку форматов изображений в Qt.....
Название: Re: Почему работает после установки новой сборки? Отправлено: patison от Август 17, 2010, 20:40 Нее.. не забыл:
Код: ./configure -static -prefix /usr/local/Trolltech/Qt-4.6.2_static -release -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg -nomake demos -nomake examples |