Как найти версию qt в Linux
Обновлено: 21.11.2024
Введение
Версию библиотеки Qt можно получить разными способами, используя командную строку или код C++. Я использую несколько:
Проверить, установлен ли Qt
Перед тестированием версии вы, вероятно, захотите убедиться, что Qt установлен.
qmake практически всегда устанавливается всякий раз, когда вы устанавливаете Qt. Debian и Ubuntu используют пакет qt5-default, который напрямую зависит от qtchooser, который включает qmake. В других архитектурах, скорее всего, будут использоваться другие имена пакетов, но вы, безусловно, получите аналогичный эффект. Многие скрипты зависят от установки qmake для проверки версии Qt, поэтому в большинстве случаев он устанавливается автоматически.
При этом в системе Linux мы можем просто использовать следующий скрипт, чтобы определить, установлен ли Qt:
Это также должно работать в Mac/OS и других системах Unix.
Еще один метод в Debian – запрос с помощью dpkg-query, как показано ниже:
Вы можете проверить другой пакет, если вам нужны определенные функции.
Обратите внимание, что начиная с Qt5 имя пакета с qmake изменилось. В Debian (.deb) это qt5-qmake, а в RedHat (RPM) — qmake-qt5 .
Под MS-Windows Qt может быть установлен где угодно, а qmake может отсутствовать в переменной PATH. Однако попытка запустить qmake — это решение для проверки доступности Qt. Тем не менее, это не окончательный ответ на проблему. Если не считать чего-то конкретного для вашего программного обеспечения, единственный способ узнать это — выполнить поиск по всей файловой системе.
Версия командной строки
Инструменты Qt отобразят версию. Один из самых простых способов — использовать qmake следующим образом:
Он сообщит вам, какую версию библиотеки Qt он использует.
При написании сценария настройки вы можете использовать инструмент pkg-config (по крайней мере, в Linux и Cygwin):
Результатом является только версия указанного модуля. Чтобы найти все доступные модули, загляните в папку /usr/lib/pkgconfig. Файлы .pc — это текстовые файлы, поэтому вы можете просматривать их в своем любимом текстовом редакторе (vim, верно?)
Примечание. Начиная с Ubuntu 16.04, pkg-config не определен.
Версия времени компиляции
Иногда вам нужно представить версию Qt, с которой вы скомпилировали свое приложение. Это использует макросы Qt. Например:
Макрос компилируется во время компиляции и не изменится, что бы ни случилось. Если вы создадите ссылку на совместимую версию, вы получите ответ, соответствующий динамической версии.
Примечание: использование "%s" и аргументов важно по соображениям безопасности. Хотя маловероятно, что версия будет включать символ %, если бы он был, это могло бы иметь катастрофические последствия для функции printf().
Версия выполнения
Во время выполнения версия может отличаться от той, которая была во время компиляции (т.е. вы обновили свою библиотеку, а не тот или иной инструмент). В общем, все версии 5.5.x совместимы друг с другом. У вас может быть еще несколько ошибок в более старых версиях (меньшая версия x patch.)
Чтобы убедиться, что вы используете определенную версию или, по крайней мере, версию 5.5.1 (например), вы можете проверить версию во время выполнения с помощью функции qVersion():
Расхождение между временем компиляции и версией среды выполнения можно обнаружить, сравнив вывод qVersion() с QT_VERSION_STR. Если это не так, вы можете решить провести дальнейшее тестирование, чтобы определить, будет ли все работать.
Если вам нужен небольшой дескриптор для анализа версии, у меня есть класс в моем проекте wpkg, который делает именно это с версиями типа Debian.
Невозможные комбинации
Библиотеки Qt обычно имеют прямую совместимость без особых проблем. В Linux он также в основном обратно совместим, хотя время от времени в библиотеку добавляются дополнительные функции, и если они используются в вашем программном обеспечении, динамическая компоновка может дать сбой.
Например, функция QCoreApplication::applicationVersion() была добавлена в версии 4.4.0. Если вы используете эту функцию в своем приложении, то пользователь с Qt 4.3.x или более ранней версии не сможет запустить ваше приложение, поскольку динамическая компоновка не удалась. (он не может найти функцию applicationVersion(), указанную в вашем двоичном файле.)
cmake и Qt
Поскольку все больше и больше людей используют cmake вместо других инструментов для создания своей среды сборки, я подумал, что должен упомянуть об этом здесь.
В Linux пакет cmake-data устанавливает список файлов Qt, которые помогут вам найти библиотеку Qt, скомпилировать ее с помощью библиотеки Qt и связать с библиотекой Qt.
Пример файлов, которыми управляет cmake:
В одном из моих Snap! есть пример команд cmake для использования Qt5.Проекты C++:
Расширьте свои знания
Чтобы узнать больше о Qt, я предлагаю вам ознакомиться с кулинарной книгой Qt5 C++ GUI Programming Cookbook на Amazon. Он обязательно поможет вам в работе, решив многие проблемы в вашей разработке с использованием Qt5. Да, и помните, что работодатели любят предоставлять вам инструменты, которые позволяют им сократить свои расходы, в том числе книги!
Отлично, спасибо за информацию. Я сделал несколько обновлений имени пакета qmake. Однако первый сценарий по-прежнему верен. Как только qmake будет установлен, вы можете использовать его как признак того, что Qt установлен.
«qt5-default» — это debian-изм, которого нет в Arch/Fedora/openSUSE. Они также используют не "qmake" для Qt 5, а "qmake-qt5".
Qt Creator позволяет установить несколько версий Qt на ПК для разработки и использовать разные версии для создания проектов. Например, производители устройств предоставляют специальные версии Qt для разработки приложений для своих устройств.
Qt Creator автоматически определяет версии Qt, зарегистрированные вашей системой или установщиками. Чтобы просмотреть подробную информацию для каждой версии Qt, выберите ее в списке и выберите Подробности в разделе Версия Qt для. Чтобы добавить версии Qt, выберите Инструменты > Параметры > Сборка и запуск > Версии Qt.
Вы указываете версию Qt, используемую для каждого комплекта для сборки и запуска ваших проектов, в меню Инструменты > Параметры > Сборка и запуск > Комплекты.
Настройка новых версий Qt
Чтобы добавить версию Qt:
- Выберите Инструменты > Параметры > Сборка и запуск > Версии Qt > Добавить.
- Выберите исполняемый файл qmake для версии Qt, которую вы хотите добавить.
- Выберите версию Qt для просмотра и редактирования.
Минимальные требования
Если ваша сборка Qt не завершена, но вы все еще хотите использовать QMake в качестве системы сборки, вам необходимо обеспечить следующие минимальные требования, чтобы иметь возможность использовать эту настройку с Qt Creator.
- qmake — это исполняемый файл, который понимает аргумент командной строки -query.
- Каталоги bin и include должны существовать. Qt Creator извлекает эти каталоги, запуская qmake -query .
- Каталог mkspecs должен быть достаточно полным для разбора файлов .pro.
Если в вашей версии Qt нет libQtCore.so, Qt Creator не сможет обнаружить ABI.
© 2015 The Qt Company Ltd. Права на документацию, включенную в настоящий документ, принадлежат их соответствующим владельцам. Предоставленная здесь документация распространяется под лицензией GNU Free Documentation License версии 1.3, опубликованной Free Software Foundation. Qt и соответствующие логотипы являются товарными знаками The Qt Company Ltd в Финляндии и/или других странах мира. Все остальные товарные знаки являются собственностью соответствующих владельцев.
Qt Creator позволяет установить несколько версий Qt на ПК для разработки и использовать разные версии для создания проектов. Например, производители устройств предоставляют специальные версии Qt для разработки приложений для своих устройств.
Регистрация установленных версий Qt
Qt Creator автоматически определяет версии Qt, зарегистрированные вашей системой или установщиком Qt. Чтобы просмотреть подробную информацию для каждой версии Qt, выберите ее в списке и выберите Подробности в разделе Версия Qt для.
Чтобы удалить недействительные версии Qt, выберите Очистить.
Вы можете создать ссылку на Qt, который вы установили с помощью Qt Maintenance Tool, чтобы автоматически зарегистрировать установленные версии Qt. Однако вы не можете ссылаться на версии Qt, которые были установлены системой с помощью какого-либо другого менеджера пакетов, такого как ваш дистрибутив Linux, brew в macOS или Chocolatey в Windows, а также самостоятельно созданный Qt. В таких случаях выберите Добавить на вкладке Версии Qt, чтобы добавить версию Qt вручную, как указано в разделе Настройка новых версий Qt.
Чтобы создать ссылку на установку Qt:
-
Выберите «Инструменты» > «Параметры» > (или «Qt Creator» > «Настройки» в macOS) > «Наборы» > «Версии Qt» > «Связать с Qt».
Чтобы удалить из списка автоматически обнаруженные версии Qt, выберите Удалить ссылку.
Если версии Qt по-прежнему нет в списке на вкладке "Версии Qt" в разделе "Автоопределение", вам необходимо настроить ее вручную, как описано в следующем разделе.
Вы указываете версию Qt, используемую для каждого комплекта для создания и запуска ваших проектов, в меню Инструменты > Параметры > Комплекты, как описано в разделе "Указание параметров комплекта".
Настройка новых версий Qt
Чтобы добавить версию Qt:
- Выберите Инструменты >Параметры >Наборы >Версии Qt >Добавить.
- Выберите исполняемый файл qmake для версии Qt, которую вы хотите добавить.
- Выберите версию Qt для просмотра и редактирования.
- В поле Имя измените имя, которое Qt Creator предлагает для версии Qt.
- В поле пути qmake вы можете изменить местоположение qmake.
- Если версия Qt предназначена для QNX, введите путь к установленному QNX SDK в поле QNX SDK.
Чтобы удалить версию Qt, которую вы добавили вручную, выберите ее в списке "Вручную", а затем выберите "Удалить".
Регистрация документации
По умолчанию Qt Creator регистрирует только последнюю доступную версию документации для каждого установленного модуля Qt.
Чтобы зарегистрировать комплекты документации всех установленных версий Qt, выберите All из списка Register document. Чтобы вообще не регистрировать документацию Qt, выберите None. Поведение по умолчанию — «Только самая высокая версия».
Устранение неполадок при установке Qt
Если Qt Creator обнаруживает проблемы при установке версии Qt, он отображает предупреждения и ошибки рядом с названием версии Qt в списке. Выберите версию Qt, чтобы просмотреть дополнительную информацию о проблеме и предложения по ее устранению.
Чтобы определить, правильно ли установлена конкретная версия Qt, Qt Creator вызывает qmake -query и проверяет существование каталогов, на которые есть ссылки в выходных данных. Когда Qt Creator жалуется на установку самодельной версии Qt, попробуйте запустить make install в каталоге сборки, чтобы фактически установить Qt в настроенное место. Если вы установили Qt с помощью установщика Qt, запустите средство обслуживания Qt, чтобы проверить наличие обновлений или переустановить версию Qt.
Минимальные требования
Если ваша сборка Qt не завершена, но вы все еще хотите использовать QMake в качестве системы сборки, вам необходимо обеспечить следующие минимальные требования, чтобы иметь возможность использовать эту настройку с Qt Creator.
- qmake — это исполняемый файл, который понимает аргумент командной строки -query.
- Каталоги bin и include должны существовать. Qt Creator извлекает эти каталоги, запуская qmake -query .
- Каталог mkspecs должен быть достаточно полным для разбора файлов .pro.
Если в вашей версии Qt нет libQtCore.so , Qt Creator не сможет обнаружить ABI.
© 2021 The Qt Company Ltd. Права на документацию, включенную в настоящий документ, принадлежат их соответствующим владельцам. Предоставленная здесь документация распространяется под лицензией GNU Free Documentation License версии 1.3, опубликованной Free Software Foundation. Qt и соответствующие логотипы являются товарными знаками The Qt Company Ltd в Финляндии и/или других странах мира. Все остальные товарные знаки являются собственностью соответствующих владельцев.
Qt Creator позволяет вам использовать несколько версий Qt, установленных на вашем жестком диске, и легко переключаться между ними.
Qt Creator автоматически определяет, находится ли qmake в переменной окружения PATH. Эта версия Qt упоминается как Qt в PATH. Если вы используете только одну версию Qt, и она уже находится в вашем пути и правильно настроена для использования в командной строке, вам не нужно вручную настраивать свою версию Qt.
В противном случае вы можете добавить свою версию Qt в Инструменты > Параметры. > Версии Qt в Windows и Linux или в Qt Creator > Настройки. > Версии Qt в Mac OS X.
Подробные настройки зависят от вашей операционной системы и целевой цепочки инструментов.
В Linux и Mac OS X укажите путь к QMake для двоичного файла qmake установки Qt. Если Qt найден в переменной окружения PATH, он автоматически отображается как Qt в PATH.
На обеих платформах для компиляции Qt используется коллекция компиляторов GNU (GCC). В Mac OS компилятор GCC является частью XCode. В Linux компилятор Intel (ICC) поддерживается в качестве замены GCC.
Если вы работаете на платформе Windows и используете MinGW для компиляции Qt, вам необходимо указать Qt Creator, где установлен MinGW. Это делается путем установки каталога MinGW.
Если ваша версия Qt скомпилирована с помощью компилятора Microsoft Visual C++, Qt Creator автоматически устанавливает правильные переменные среды для компиляции. В раскрывающемся списке MSVC указан внутренний номер версии установленных цепочек инструментов Microsoft Visual C++:
- 7.1: Visual Studio 2003
- 8.0: Visual Studio 2005
- 9.0: Visual Studio 2008
Если вы используете Windows SDK для Windows Server 2008 вместо Visual Studio, он идентифицируется как версия 9.0.
Если вы используете Qt для Symbian и ваш S60 SDK зарегистрирован в devices.exe, Qt Creator автоматически определяет версию Qt. Он отображается в разделе «Автоматически обнаруженные» в диалоговом окне параметров. Вы также можете вручную добавить Qt для версий Symbian. В этом случае вам нужно указать Qt Creator путь к S60 SDK, который предполагается использовать с этими установками Qt. Добавьте путь к установке Carbide C++ версии 2.0 или более поздней, если вы хотите выполнить сборку для эмулятора (цепочка инструментов WINSCW). Если вы хотите использовать GCCE для сборки для вашего устройства, вам может потребоваться добавить путь к каталогу CSL ARM Toolchain (CSL/GCCE Directory), если компилятор не найден в переменной окружения PATH.
Примечание. По умолчанию проекты компилируются с версией Qt по умолчанию. Вы можете переопределить это в конфигурации сборки.
Читайте также: