Название: Перенос Qt5 в другой каталог Отправлено: AkonResumed от Май 06, 2020, 12:19 Имеем Qt, установленную в С:\Qt\5.12.3\msvc2017_64 (штатный инсталлятор). Требуется перенести ее в папку %USERNAME%\libs\Qt-5.12.3-win32-x64-msvc. Дополнительный вопрос - переменные среды (%USERNAME% в данном случае) получится задействовать для гибкости?
Раньше с Qt4 была тулза qpatch.exe. Она позволяла пропатчить прямо бинарные файлы на новый путь (не превосходящий по длине старого). Что теперь в Qt5? Сам Qt-ный инсталлятор общие папки типа "Src", "Docs", "Examples",.. (все эти папки лежат вне директории Qt) патчит с помощью Название: Re: Перенос Qt5 в другой каталог Отправлено: kuzulis от Май 06, 2020, 13:41 ЕМНИП, надо патчить так или иначе саму qmake.
Название: Re: Перенос Qt5 в другой каталог Отправлено: AkonResumed от Май 06, 2020, 15:18 qt.conf, а не qmake.conf! Я ошибся, извините.
По другому - нужно менять содержимое источника, откуда берет данные QLibraryInfo, если верно помню. В ряду прочего, например, в самих бинарях (Qt5Core и т.п.) есть хардкорные абсолютные пути, вот это и нужно изменить на новое местоположение. Название: Re: Перенос Qt5 в другой каталог Отправлено: Авварон от Май 06, 2020, 15:50 А чем решение с qt.conf не устраивает? Я пользуюсь, брат жив.
Название: Re: Перенос Qt5 в другой каталог Отправлено: AkonResumed от Май 06, 2020, 17:29 Да это рабочий (и простой) вариант. Установил сейчас последний Креатор (4.12), так там тоже qt.conf используется. Просто можно было бы сразу без qt.conf, да и претят хардкодные абсолютные пути, уже не имеющие смысла после переноса.
Название: Re: Перенос Qt5 в другой каталог Отправлено: AkonResumed от Ноябрь 13, 2020, 22:54 Вновь подниму вопрос. Как (какой тулзой или сам) Maintenance Tool патчит загруженные бинари после того, как распаковал их в каталог установки? Например, я имею в Qt5Core.dll, qmake.exe и ряде prl-файлов строку, содержащую путь установки.
Название: Re: Перенос Qt5 в другой каталог Отправлено: AkonResumed от Ноябрь 14, 2020, 23:57 Вобщем, слегка проработал тему:
1. Изменить харкордные пути можно через Qt Installer Framework. Maintenance Tool как раз оттуда. Там скриптовые модули для кастомной обработки. 2. Спецом для Windows есть еще тулза windeployqt, она также должна уметь патчить. Я все эти инструменты не использовал, ибо нужно разбираться. 3. Собственно, полагаю достаточным будет пропатчить вручную (всего то ~10 файлов). 4. Пермещение Qt, видимо, все же актуальная задача. И вот здесь https://github.com/lniccoli/qtrelocator уже давно кто-то запилил консольную тулзу, сорцы которой выдранны из Qt-инсталлера. Она как раз только и делает, что патчит: Код: QtRelocator "E:\My New Location\Qt-v5.12.3-win32-x64-msvc2017" qt5 Файлы, которые нужно было пропатчить в моем случае (Qt-v5.12.3-win32-x64-msvc2017): bin: 2020-11-14 23:20 2,794,496 qmake.exe 2020-11-14 23:20 6,130,176 Qt5Core.dll 2020-11-14 23:20 14,041,088 Qt5Cored.dll lib: 2020-11-14 23:20 1,424 Qt5AxBase.prl 2020-11-14 23:20 1,409 Qt5AxBased.prl 2020-11-14 23:20 1,499 Qt5AxContainer.prl 2020-11-14 23:20 1,485 Qt5AxContainerd.prl 2020-11-14 23:20 1,506 Qt5AxServer.prl 2020-11-14 23:20 1,492 Qt5AxServerd.prl 2020-11-14 23:20 1,382 Qt5PacketProtocol.prl 2020-11-14 23:20 1,365 Qt5PacketProtocold.prl 2020-11-14 23:20 1,425 Qt5QmlDebug.prl 2020-11-14 23:20 1,410 Qt5QmlDebugd.prl 2020-11-14 23:20 1,423 Qt5QmlDevTools.prl 2020-11-14 23:20 1,477 Qt5UiTools.prl 2020-11-14 23:20 1,465 Qt5UiToolsd.prl Да, и начиная с Qt 5.14, Qt становится перемещаемой (-relocatable configure option, которая включена по умолчанию), т.е. она ищет плагины относительно QtCore, а не по хардкордным путям. Распространяемые бинари были собраны с этой опцией (кто скажет у кого >=5.14)? |