LINUX.ORG.RU

Как узнать версию кутэ в коде с++?

 ,


0

1

Я вообщем пилю кроссплатформенное ПО и в линухе 5я версия последняя для дистрибутива а в винде 6я. Из-за этого приходится переписывать инклуды хидеров - там разные директории до них. Макрос __unix__ не находит почему то, _WIN32 есть(хотя можно через него). Как бы узнать версию в коде на с++? Чтобы была директория инклуда кутэ что там что там?

Из-за этого приходится переписывать инклуды хидеров - там разные директории до них.

Неправильно.

Правильно: нужно переписывать билд-скрипты сборочной системы, подставляя требуемые пути там, а не хардкодить пути в самих исходниках.

Макрос unix не находит почему то, _WIN32 есть(хотя можно через него).

Неправильно.

Правильно: нужно использовать определния вида QT_OS_WIN, QT_OS_LINUX из хедера QtGlobal: https://doc.qt.io/qt-6/qtglobal.html

Как бы узнать версию в коде на с++?

С помощью того же самого хедера QtGlobal, в котором имеются удобные директивы QT_VERSION и даже QT_VERSION_CHECK:

https://doc.qt.io/qt-6/qtglobal.html#QT_VERSION_CHECK

EXL ★★★★★
()
Ответ на: комментарий от bad_master

Я до такого не дорос, ИДЕ собирает

Так расти и повышай квалификацию, если не хочешь навсегда остаться на уровне «IDE сама там делает какое-то волбшество» и плодить говнокод с условной компиляцией и вхардоженными путями, который тут описал.

EXL ★★★★★
()
Ответ на: комментарий от bad_master

на кой ляд мне 5я версия кутэ в винде, когда есть 6я - она безопасней и ею все пользуются

Так и правильно. Поставь 6-ую в Linux. Вот официальный онлайн установщик https://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run . Нужно зарегаться и устанавливаешь например в каталог /opt/Qt6.*.* . Но запускать установщик нужно под VPN, т.к. Qt-шники блочат наши ip адреса.

rumgot ★★★★★
()
Последнее исправление: rumgot (всего исправлений: 1)
Ответ на: комментарий от rumgot

Не используй в одном проекте под одну ОС Qt5, а под вторую Qt6. Упрешься в то, что в одной версии что-то есть, а в другой нет. Лучше установи требуемою версиб и там и там.

Ага, пусть мне будет хорошо, а тем, кто захотел мой проект собрать из исходников со своей системной Qt — плохо. Qt4 и Qt5 вполне поддерживаемы в одном проекте. Подозреваю, что и с Qt5+Qt6 вполне такое проворачивается.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Ага, пусть мне будет хорошо, а тем, кто захотел мой проект собрать из исходников со своей системной Qt — плохо

Одновременно совместимость с 5-ой и 6-ой версиями? Ты же в курсе, что в Qt полно функций с пометкой intoduced in Qt6… ? Предлагаешь их не использовать? А как быть с багами, которые закрывают только в новых версиях?

Это очень огроменная работа - обеспечить совместимость с двумя версиями Qt 5 и 6. Лучше это время и энергию потратить на новый функционал.

И да, если кто-то захотел собрать твой проект - то можно и Qt поставить с оф. сайта нужной версии.

rumgot ★★★★★
()