Как узнать, какая версия Qt используется в Linux Mint 17.x?
Я новичок в Linux и поддерживаю приложение, работающее на Mint 17.x. В приложении есть ошибка, которая, похоже, связана со старой версией Qt 5.
Как я могу узнать, какая версия Qt 5 установлена на только что созданной машине Mint 17.x?
3 ответа
Я довольно новичок в Linux и поддерживаю приложение, которое работает на Mint 17.x. Приложение имеет ошибку, которая, кажется, связана со старой версией QT 5.
У меня нет мяты, но что я пытался на Debian Jessie, впервые ищет каталог QT через
ls /usr/share/ | grep qt
Затем я перешел в каталог / usr / share / qt5. Оттуда я сделал
grep -r «QtCore 5»
Я нашел матч в /usr/share/qt5/doc/qtcore.qch/
Открыв файл в vim (или в любом другом редакторе, который вы предпочитаете), я поискал «QtCore 5», чтобы найти основную версию. Я нашел несколько упоминаний QtCore 5.3, но ни одного упоминания «QtCore 5.1», «QtCore 5.2» или «QtCore 5.4». Чтобы найти дополнительную версию, я искал варианты «project.qtcore.53X», где X — это дополнительный номер версии. Я нашел «project.qtcore.532», но не нашел другого варианта.
Обратите внимание, что для поиска в vim вам нужно будет использовать символ «\», чтобы экранировать «.» регулярное выражение.
Как проверить версию qt linux
Группа: Новичок
Сообщений: 5
Регистрация: 19.3.2011
Пользователь №: 2523
Репутация: 0
опции профиля:
Просмотр профиля
Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752
Репутация: 212
опции профиля:
Просмотр профиля
Группа: Новичок
Сообщений: 5
Регистрация: 19.3.2011
Пользователь №: 2523
Репутация: 0
опции профиля:
Просмотр профиля
Группа: Участник
Сообщений: 221
Регистрация: 16.12.2010
Из: СПб
Пользователь №: 2272
Репутация: 4
в qt\bin должна быть запускалка QtAssistant,
если запустится, то справка / о программе
хотя бы так
а вообще в линуксе есть пакетный менеджер
опции профиля:
Просмотр профиля
Группа: Новичок
Сообщений: 5
Регистрация: 19.3.2011
Пользователь №: 2523
Репутация: 0
опции профиля:
Просмотр профиля
Группа: Участник
Сообщений: 221
Регистрация: 16.12.2010
Из: СПб
Пользователь №: 2272
Как найти версию Qt?
Как мне узнать, какую версию Qt я использую? Когда я открываю Qt Creator, он показывает «Добро пожаловать в Qt Creator 2.3». Однако в настройке сборки он показывает версию Qt 4.7.1.
8 ответов
Начиная с Qt 5.3 вы можете использовать:
Это печатает кучу полезной информации. Первая строка включает версию:
Вся информация о версии находится в PyQt5.Qt:
Функции также могут быть вызваны:
Вы используете Qt версии 4.7.1, потому что это версия qmake. Вы также можете получить из оболочки тип qmake -v. Другая версия, а именно 2.3, является версией Qt Creator, а не Qt
Моя обычная отправная точка для исследования установленного программного обеспечения — это
Как узнать версию кутэ в коде с++?
Я вообщем пилю кроссплатформенное ПО и в линухе 5я версия последняя для дистрибутива а в винде 6я. Из-за этого приходится переписывать инклуды хидеров — там разные директории до них. Макрос __unix__ не находит почему то, _WIN32 есть(хотя можно через него). Как бы узнать версию в коде на с++? Чтобы была директория инклуда кутэ что там что там?
Если определение платформы, то есть следующие макросы:
Погуглите «Как узнать версию QT C++»
а какой хидер прицепить чтобы там были эти надписи?
Из-за этого приходится переписывать инклуды хидеров — там разные директории до них.
Правильно: нужно переписывать билд-скрипты сборочной системы, подставляя требуемые пути там, а не хардкодить пути в самих исходниках.
Макрос unix не находит почему то, _WIN32 есть(хотя можно через него).
Правильно: нужно использовать определния вида QT_OS_WIN , QT_OS_LINUX из хедера QtGlobal : https://doc.qt.io/qt-6/qtglobal.html
Как бы узнать версию в коде на с++?
С помощью того же самого хедера QtGlobal , в котором имеются удобные директивы QT_VERSION и даже QT_VERSION_CHECK :
нужно переписывать билд-скрипты сборочной системы
Я до такого не дорос, ИДЕ собирает
А констант, содержащих версию, что нет?
printf(«Compiled with Qt Version %s\n», QT_VERSION_STR);
Всё там есть, на любой вкус и цвет.
Я до такого не дорос, ИДЕ собирает
Так расти и повышай квалификацию, если не хочешь навсегда остаться на уровне «IDE сама там делает какое-то волбшество» и плодить говнокод с условной компиляцией и вхардоженными путями, который тут описал.
таких макросов нет
Лучше один раз увидеть, чем сто раз погуглить.
Не используй в одном проекте под одну ОС Qt5, а под вторую Qt6. Упрешься в то, что в одной версии что-то есть, а в другой нет. Лучше установи требуемою версиб и там и там.
я не настолько крут, использую то что есть везде без фич и заморочек
Ну так научись. В установке ничего сложного нет.
на кой ляд мне 5я версия кутэ в винде, когда есть 6я — она безопасней и ею все пользуются
на кой ляд мне 5я версия кутэ в винде, когда есть 6я — она безопасней и ею все пользуются
Так и правильно. Поставь 6-ую в Linux. Вот официальный онлайн установщик https://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run . Нужно зарегаться и устанавливаешь например в каталог /opt/Qt6.*.* . Но запускать установщик нужно под VPN, т.к. Qt-шники блочат наши ip адреса.
да я в курсе что блочат
Не используй в одном проекте под одну ОС Qt5, а под вторую Qt6. Упрешься в то, что в одной версии что-то есть, а в другой нет. Лучше установи требуемою версиб и там и там.
Ага, пусть мне будет хорошо, а тем, кто захотел мой проект собрать из исходников со своей системной Qt — плохо. Qt4 и Qt5 вполне поддерживаемы в одном проекте. Подозреваю, что и с Qt5+Qt6 вполне такое проворачивается.
Ага, пусть мне будет хорошо, а тем, кто захотел мой проект собрать из исходников со своей системной Qt — плохо
Одновременно совместимость с 5-ой и 6-ой версиями? Ты же в курсе, что в Qt полно функций с пометкой intoduced in Qt6… ? Предлагаешь их не использовать? А как быть с багами, которые закрывают только в новых версиях?
Это очень огроменная работа — обеспечить совместимость с двумя версиями Qt 5 и 6. Лучше это время и энергию потратить на новый функционал.
И да, если кто-то захотел собрать твой проект — то можно и Qt поставить с оф. сайта нужной версии.