Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Кроссплатформенный C/C++: cl/gcc/Qt/Gtk+/WxWidgets > Qt. Проблема с путями установки.


Автор: archimed7592 25.08.07, 18:02
В принципе, qt "из коробки" всем меня устраивал, но вот, появилась идейка попробовать собрать qt с stlport. Собраться то собралось(между прочим, без особых проблем), но тот ужас, который получился после почти суточной сборки Qt(у меня сейчас есть доступ только к достаточно слабенькой машине) меня, мягко говоря поразил.

Проблема, значит в следующем: qt абсолютно пофиг на переменную среды QTDIR. Пути прописаны прямо в исполняемых файлах и библиотеках, причём абсолютные.
Неповерив своим глазам, я полез в qt "из коробки": да, да - там тоже они прописаны и тоже абсолютные. Только количество файлов, в которых прописаны пути в коробочной версии меньше - только в qmake, qtcore4.dll и *.prl.
Мне стало интересно, как же так? Переустановил коробочную версию - действительно, после распаковки есть стадии patching xxx.prl/patching qmake/patching core.

Это нормально? Чего они хотели добиться этим? У меня шок, короче :blink:.

Как это лечится не нашёл, да и вряд ли найду - если официальный установщик ничего лучшего, чем патчить бинарники не придумал, то куда уж мне <_<.

Удивило только то, что в собственно-собранной версии эти пути прописаны почти в каждом файле.

Буду рад, если меня убедят в том, что в trolltech сидят не муд*ки и что сделали они ЭТО потому что иначе было "просто невозможно".

Автор: grustnoe 25.08.07, 18:10
где-то читал, что можно диру с либами прописать в PATH, и тогда все заработает.

Автор: Flex Ferrum 25.08.07, 18:44
Думаю, что это издержки коммерческой ориентации библиотеки. Меня тоже это удивило. Но, с другой стороны, это позволяет тебе не гемороиться с настройками переменных окружения. Хотя... Может быть это пережитки предыдущих версий, может быть еще что-то... С другой стороны, если конфигурировать и собирать QT непосредственно в той директории, откуда она будет использоваться - проблем не будет.

Автор: archimed7592 26.08.07, 03:12
Цитата grustnoe @
где-то читал, что можно диру с либами прописать в PATH, и тогда все заработает.

:no:
Заработают только нормальные проги, для которых нужны qt*4[d].dll. Что же касается qmake(у которого qmake.conf жестко прописан) или assistant(у которого папки с документацией прошиты) и остального - нифига работать не будет. Иначе говоря, при переносе в другую папку разрабатывать при помощи qt будет невозможно. Только если заново пересобирать в новой папке.


Цитата Flex Ferrum @
Но, с другой стороны, это позволяет тебе не гемороиться с настройками переменных окружения.

Flex, ну вот ты умный мужик, ну скажи чего проще, прописать одну переменную окружения или пропатчить с десяток бинарников?
А ещё, такой вопрос напрашивается: термин "относительный путь" разработчикам из Trolltech неизвестен? :huh:


Цитата Flex Ferrum @
С другой стороны, если конфигурировать и собирать QT непосредственно в той директории, откуда она будет использоваться - проблем не будет.

Ага... знать бы про этот косяк до того, как потратил сутки-другие на сборку >:(.



Одна мысль осенила: Trolltech не позволяет случайно делать свои установщики для собственноручных билдов Qt?

Автор: Flex Ferrum 26.08.07, 06:14
Кстати, по поводу сборки хинт - выкинь из сборки примеры, и все будет проходить быстрее.

Автор: archimed7592 26.08.07, 06:49
Нашёл только ключик -fast для configure, но это к сборке отношения не имеет... Как выкидывать примеры не нашёл.

Автор: mrco 26.08.07, 09:10
Цитата archimed7592 @
Проблема, значит в следующем: qt абсолютно пофиг на переменную среды QTDIR. Пути прописаны прямо в исполняемых файлах и библиотеках, причём абсолютные.

QTDIR для программ использующих куте установлено. А вообще многие либы (да и программы) собираются с жесткой привязкой к путям (autoconf по параметрам сборки формирует .h файлик с путями и он вбилдивается) и в этом ничего плохого нет, никому в голову не взбредет перемещать файлы из /lib или /usr/lib.

Автор: archimed7592 26.08.07, 10:06
mrco, в *nix - да, никому в голову такое не придёт, но в винде... сам понимаешь :).
Ладно, я написал в qt-interest... Кое-что посоветовали. Как решу эту проблему(или пойму, что она не решаема) - отпишусь.

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)