mafulechkaFeb. 21, 2020, 5:03 a.m.

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

Content

Начиная с версии 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 и могут отключить эту функцию.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
Support the author Donate

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Timeweb

Let me recommend you the excellent hosting on which EVILEG is located.

For many years, Timeweb has been proving his stability.

For projects on Django I recommend VDS hosting

View Hosting
L

C++ - Test 001. The first program and data types

  • Result:80points,
  • Rating points4
DTs

C++ - Test 001. The first program and data types

  • Result:46points,
  • Rating points-6
SB

Qt - Test 001. Signals and slots

  • Result:94points,
  • Rating points8
Last comments
JaO

Как соответствовать новым требованиям Google Play

Ку всем! Вопрос! Как с помощью JNI вызвать оплату на android устройстве? Попробовал Qt Purchasing вроде пошло... но android пишет что библиотека устарела. В qt6 пока поддержки purchasing нет. Р…

Django - Tutorial 014. Displays a list of popular articles on Django

Я как понял, этот метод создает статистику каждый день (на каждый день), не удаляя старые данные за день и выводит все данные за сегодняшние просмотры у всех статей?

Qt/C++ - Lesson 006. QSqlQueryModel – Tables in Qt with SQL-query

Изменить запрос при создании модели.
L
  • Livis
  • May 30, 2021, 1:18 p.m.

Django - Tutorial 001. Deploying a site on Django + PostgreSQL + Gunicorn + Nginx

Отвечал на все команды после sudo service supervisor start Исправил таким образом sudo killall supervisordsudo supervisord -c /etc/supervisor/supervisord.conf
D

Django - Tutorial 001. Deploying a site on Django + PostgreSQL + Gunicorn + Nginx

Это на какую команду так отвечает?
Now discuss on the forum
v
  • vika
  • June 17, 2021, 12:19 a.m.

Вопрос новичка ui-форма

все получилось. создала обьект, исправила ошибки и все заработало. спасибо, что есть с кем поговорить.
s

Ключевое слово class

Разобрался,на стаковерфлоу нашел топик и понял почему так происходило .
KM

Django как воспользоваться результатом метода?

Priv = 2020 Now = 2021 Next = 2022 Rok = ( (None, "Nie wybran"), (Priv, '2020'), (Now, '2021'), (Next, '2022') ) Rok = models.IntegerField(choices=Rok, de…

QScrollArea dynamically add QCheckBoxes

Всё правильно. Это просто спамер, который отправился в вечный бан.

Папка с шаблоном сайта

Есть проект с поддержкой динамического создания поддоменов. Как назначить разные пути к шаблонам в templates from django.shortcuts import renderfrom horticulture.utilities import get_horticu…
About
Services
© EVILEG 2015-2021
Recommend hosting TIMEWEB