mafulechka
mafulechka21 февраля 2020 г. 5:03

Теперь Qt можно перемещать!

Начиная с версии 5.14.0 Qt можно перемещать , то есть можно перенести установку Qt в другую директорию, не нарушая функциональность и не загружая плагины.


Что это значит для меня?

Давайте перейдем к роли мастера сборки Qt в проекте Windows. Вы тот, кто знает все настройки аргументов наизусть. Вы знаете, какой винтик оптимизации повернуть, а какую ненужную функцию отключить.
Ваша сборка Qt идеально адаптирована к проекту, и вы предоставляете zip-файл, содержащий установку Qt.

configure -prefix C:/Qt/5.12.6 ...more options...
jom
jom install
zip -r X:\shared_stuff\qt-5.12.6.zip C:\Qt\5.12.6

Затем ваши товарищи по команде извлекают архив в одно и то же место, и все работает отлично.
Теперь, по любой причине, Joe Developer должен распаковать инсталляцию Qt в какой-либо другой drive/directory (директорию).
Qt в этом другой директории не работает. QMake не будет работать должным образом. Плагины не могут быть загружены. Asset’ы Qt не найдены.

Почему все сломалось?

Исторически, конфигурация Qt встраивала директорию установки в исполняемом файле qmake и библиотеку Qt5Core. Логика в QLibraryInfo пытается найти плагины, asset’ы и mkspecs под жестко заданным префиксом, который всегда является тем, что вы передали для настройки с аргументом -prefix.

А в Qt 5.14 перемещение директории установки работает?

О да! Начиная с Qt 5.14.0 префикс установки может автоматически определяться расположением библиотеки Qt5Core или самого исполняемого файла без использования жестко заданных путей.
Этот автоматизм контролируется в то время, когда Qt конфигурируется через функцию перемещения .
Эта функция включена по умолчанию для нестатических сборок Qt.
Если вам нужна перемещаемая статическая сборка, включите эту функцию вручную:

onfigure -static -feature-relocatable ...

Предостережение о перемещаемых статических сборках заключается в том, что внутренние переводы Qt не обрабатываются автоматически.
Вам нужно будет развернуть файлы перевода Qt вместе с вашим приложением.
Это отличие от не перемещаемой сборки является причиной того, что перемещение отключено по умолчанию для статических сборок.

Если мне это не нравится, могу ли я выключить эту функцию?

Конечно вы можете.

configure -no-feature-relocatable ...

вернет старое поведение.
Например, дистрибутивы Linux не нуждаются в перемещаемом Qt и могут отключить эту функцию.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
AD

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:50баллов,
  • Очки рейтинга-4
m
  • molni99
  • 26 октября 2024 г. 1:37

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:80баллов,
  • Очки рейтинга4
m
  • molni99
  • 26 октября 2024 г. 1:29

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:20баллов,
  • Очки рейтинга-10
Последние комментарии
ИМ
Игорь Максимов22 ноября 2024 г. 11:51
Django - Урок 017. Кастомизированная страница авторизации на Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Evgenii Legotckoi
Evgenii Legotckoi31 октября 2024 г. 14:37
Django - Урок 064. Как написать расширение для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
A
ALO1ZE19 октября 2024 г. 8:19
Читалка fb3-файлов на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Игорь Максимов5 октября 2024 г. 7:51
Django - Урок 064. Как написать расширение для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
d
dblas55 июля 2024 г. 11:02
QML - Урок 016. База данных SQLite и работа с ней в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Сейчас обсуждают на форуме
m
moogo22 ноября 2024 г. 7:17
Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
Evgenii Legotckoi
Evgenii Legotckoi24 июня 2024 г. 15:11
добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
t
tonypeachey115 ноября 2024 г. 6:04
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
NSProject
NSProject4 июня 2022 г. 3:49
Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…

Следите за нами в социальных сетях