J'ai téléchargé Qt 5 et essayé de construire mon projet. Les projets sont maintenant tenus d'ajouter des widgets à la variable QT, mais qui produit un avertissement avec la version plus ancienne:qmake comparaison de variables numériques
projet MESSAGE: Avertissement: QT inconnu: widgets
La solution simple semblent ajouter une simple vérification :
equals($$QT_MAJOR_VERSION, 5) {
message(" ================ QT 5 ================ ")
QT += widgets
} else {
message(" ================ QT 4 ================ ")
}
Cela n'a pas fonctionné (QT 4 est imprimé). Il est vrai que equals ne fait pas partie du qmake function reference, mais contient. Donc essayé avec:
contains($$QT_MAJOR_VERSION, 5) {
message(" ================ QT 5 ================ ")
QT += widgets
} else {
message(" ================ QT 4 ================ ")
}
mais cela n'a pas fonctionné, non plus. Diverses autres combinaisons comme contains ("$$ QT_MAJOR_VERSION", "5") ne fonctionnent pas.
L'hypothèse selon laquelle $$ QT_MAJOR_VERSION est 4 ou 5 est vérifiée par une ligne comme:
message($$QT_MAJOR_VERSION)
Définition d'une variable locale et de test pour sa valeur de cette manière ne fonctionne pas. La conclusion à tout cela est que je ne comprends pas quelque chose de fondamental sur le mécanisme de qmake. Alors, comment comparer une variable avec une valeur dans le fichier qmake .pro?