Russian Qt Forum
Ноябрь 23, 2024, 14:37
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Установка, сборка, отладка, тестирование
>
Собственный дистрибутив Qt.
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Собственный дистрибутив Qt. (Прочитано 15809 раз)
QCasper
Гость
Собственный дистрибутив Qt.
«
:
Сентябрь 06, 2007, 08:22 »
У меня возникло желание создать собственный дистр Qt. То есть собрать один раз где-нить на одном компе, проинсталлить, запихнуть инсталляцию в NSIS, и потом когда я прихожу в другое место, и мне там позарез надо Qt (ну бывает
), то не собирать все это заново 4 часа, а взять с флэшки мой 20-ти метровый дистр и все это дело быстренько установить. Я значит собрал, при сборке указав -prefix, чтобы потом оно мне установилось туда, и запихнул в NSIS. Но оказалось, что при сборке, в qmake жестко зашиваются пути к либам, плагинам и еще наверное к чему-нибудь. И причем не какой-нибудь путь, а тот, что был указан в -prefix. То есть если я на другой машине разверну этот дистрибутив по другому пути, он естественно работать не будет. По крайней мере от qmake точно придется отказаться. Поэтому, если вдруг кто знает, у меня вопрос, как тролли делают дистры, как их дистр при установке патчит qmake путями, которые юзер указал в инсталлере?
Записан
Вячеслав
Гость
Re: Собственный дистрибутив Qt.
«
Ответ #1 :
Сентябрь 06, 2007, 09:09 »
Ну речь похоже о форточках идет
А там subst никто не отменял
cd :
md xxxQT
subst q: xxxQT
ну и убрать subst /d q:
Ы ?
Записан
QCasper
Гость
Re: Собственный дистрибутив Qt.
«
Ответ #2 :
Сентябрь 06, 2007, 10:22 »
Ну теоретически то может и выход, только не думаю, что тролли пользуются именно таким подходом.
Записан
vaprele07
Гость
Re: Собственный дистрибутив Qt.
«
Ответ #3 :
Сентябрь 06, 2007, 10:41 »
зы:
Цитировать
/*
1) environment variable QMAKEFEATURES (as separated by colons)
2) property variable QMAKEFEATURES (as separated by colons)
3) <project_root> (where .qmake.cache lives) + FEATURES_DIR
4) environment variable QMAKEPATH (as separated by colons) + /mkspecs/FEATURES_DIR
5) your QMAKESPEC/features dir
6) your data_install/mkspecs/FEATURES_DIR
7) your QMAKESPEC/../FEATURES_DIR dir
FEATURES_DIR is defined as:
1) features/(unix|win32|macx)/
2) features/
*/
Записан
Tonal
Гость
Re: Собственный дистрибутив Qt.
«
Ответ #4 :
Сентябрь 06, 2007, 12:57 »
Почитай про qt.conf
Записан
QCasper
Гость
Re: Собственный дистрибутив Qt.
«
Ответ #5 :
Сентябрь 27, 2007, 13:02 »
Цитата: vaprele07 от Сентябрь 06, 2007, 10:41
зы:
Цитировать
/*
1) environment variable QMAKEFEATURES (as separated by colons)
2) property variable QMAKEFEATURES (as separated by colons)
3) <project_root> (where .qmake.cache lives) + FEATURES_DIR
4) environment variable QMAKEPATH (as separated by colons) + /mkspecs/FEATURES_DIR
5) your QMAKESPEC/features dir
6) your data_install/mkspecs/FEATURES_DIR
7) your QMAKESPEC/../FEATURES_DIR dir
FEATURES_DIR is defined as:
1) features/(unix|win32|macx)/
2) features/
*/
Не понятно, что Вы этим хотите сказать...
Цитата: Tonal от Сентябрь 06, 2007, 12:57
Почитай про qt.conf
Не думаю, что это как-то мне поможет. qt.conf помогает в том случае, когда я распространяю свою прогу и хочу перегрузить пути к либам, которые прошиты в хардкоде. Если Вы внимательно читали мой пост мне не это нужно.
Еще раз повторю. Имеем дистрибутив вида qt-win-opensource-4.3.1-mingw.exe. Берем и устанавливаем его,
туда, куда хотим
, например в d:\qt\4.3.1-opensource. После чего идем в d:\qt\4.3.1-opensource\bin и запускаем qmake с опцией -v. Вот что мы видим на выходе:
Цитировать
QMake version 2.01a
Using Qt version 4.3.1 in d:\qt\4.3.1-opensource\lib
Вся фишка в том, что путь d:\qt\4.3.1-opensource прошит прямо в qmake.exe. И сделано это на этапе инсталляции, т.к. заранее этого сделано быть не могло ввиду того, что откуда троллям знать куда мне все это взбредет проинсталлить? Вот вопрос именно в этом и заключается, что же там такое происходит на этапе инсталляции, что путь который я руками ввел при установке, оказывается прошитым в qmake.exe?
Записан
vaprele07
Гость
Re: Собственный дистрибутив Qt.
«
Ответ #6 :
Сентябрь 27, 2007, 13:24 »
это переменные среды, которыми пользуется qmake для нахождения mkspecs, в которой как известно лежат настройки для отдельных компилятором + пути к инклудам, либам, етц.
Записан
QCasper
Гость
Re: Собственный дистрибутив Qt.
«
Ответ #7 :
Сентябрь 27, 2007, 13:47 »
Цитата: vaprele07 от Сентябрь 27, 2007, 13:24
это переменные среды, которыми пользуется qmake для нахождения mkspecs, в которой как известно лежат настройки для отдельных компилятором + пути к инклудам, либам, етц.
Понятно. Но все же при создании дистрибутива подобного qt-win-opensource-4.3.1-mingw.exe тролли используют не этот подход.
Записан
mks56
Гость
Re: Собственный дистрибутив Qt.
«
Ответ #8 :
Октябрь 02, 2007, 08:59 »
To QCasper
Если внимательно посмотреть на детали процесса инсталляции Qt из exe-файла, то Вы увидите, что в конце инсталляции происходит патчинг, в процессе которого в НУЖНЫХ местах правятся пути.
Записан
QCasper
Гость
Re: Собственный дистрибутив Qt.
«
Ответ #9 :
Октябрь 02, 2007, 10:04 »
Цитата: mks56 от Октябрь 02, 2007, 08:59
To QCasper
Если внимательно посмотреть на детали процесса инсталляции Qt из exe-файла, то Вы увидите, что в конце инсталляции происходит патчинг, в процессе которого в НУЖНЫХ местах правятся пути.
Нашел строку "Patching paths in qmake...". В принципе, ничего в этом удивительного нет, понятное дело что оно как-то патчится. Вопрос стоит как?
«
Последнее редактирование: Октябрь 02, 2007, 10:51 от QCasper
»
Записан
QCasper
Гость
Re: Собственный дистрибутив Qt.
«
Ответ #10 :
Октябрь 03, 2007, 08:48 »
Все еще актуально...
Записан
mks56
Гость
Re: Собственный дистрибутив Qt.
«
Ответ #11 :
Октябрь 04, 2007, 07:00 »
To QCasper
Очевидно, патчатся бинарные файлы. В qmake.exe примерно на 96% от начала файла имеются строки типа qt_prfxpath=... и много других
Записан
QCasper
Гость
Re: Собственный дистрибутив Qt.
«
Ответ #12 :
Октябрь 04, 2007, 08:28 »
Цитата: mks56 от Октябрь 04, 2007, 07:00
To QCasper
Очевидно, патчатся бинарные файлы. В qmake.exe примерно на 96% от начала файла имеются строки типа qt_prfxpath=... и много других
Спасибо, я в курсе. Только это не дает ответа на вопрос, как значения этих строк изменить.
Их там не много, а ровно 10:
qt_prfxpath=F:\qt\4.3.1-g++
qt_docspath=F:\qt\4.3.1-g++\doc
qt_hdrspath=F:\qt\4.3.1-g++\include
qt_libspath=F:\qt\4.3.1-g++\lib
qt_binspath=F:\qt\4.3.1-g++\bin
qt_plugpath=F:\qt\4.3.1-g++\plugins
qt_datapath=F:\qt\4.3.1-g++
qt_trnspath=F:\qt\4.3.1-g++\translations
qt_xmplpath=F:\qt\4.3.1-g++\examples
qt_demopath=F:\qt\4.3.1-g++\demos
«
Последнее редактирование: Октябрь 04, 2007, 08:29 от QCasper
»
Записан
mks56
Гость
Re: Собственный дистрибутив Qt.
«
Ответ #13 :
Октябрь 04, 2007, 08:54 »
To QCasper
Там эти строки завершаются огромным количеством нулей, поэтому наверное можно написать программку, которая открывает файл qmake.exe в бинарном режиме, ищет нужную сигнатуру и правит информацию после нее на нужную и добаляет нужное число нулей. Может получится...
Записан
QCasper
Гость
Re: Собственный дистрибутив Qt.
«
Ответ #14 :
Октябрь 04, 2007, 09:39 »
Цитата: mks56 от Октябрь 04, 2007, 08:54
To QCasper
Там эти строки завершаются огромным количеством нулей, поэтому наверное можно написать программку, которая открывает файл qmake.exe в бинарном режиме, ищет нужную сигнатуру и правит информацию после нее на нужную и добаляет нужное число нулей. Может получится...
Я писал программу, которая просто заменяет эти строки на нужные мне, qmake после этого вообще вылетал с ошибкой. А Вы стало быть предлагаете, заменить и изменить количество нулей на разницу между строками?
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...