Qt 5 をダウンロードして、プロジェクトをビルドしようとしました。ウィジェットを QT 変数に追加するためにプロジェクトが必要になりましたが、古いバージョンでは警告が生成されます。
プロジェクト メッセージ: 警告: 不明 QT: ウィジェット
簡単な解決策は、簡単なチェックを追加するようです:
equals( $$QT_MAJOR_VERSION, 5 ) {
message(" ================ QT 5 ================ ")
QT += widgets
} else {
message(" ================ QT 4 ================ ")
}
それはうまくいきませんでした(QT 4が印刷されています)。equals がqmake 関数参照の一部ではなく、 is を含むことは事実です。だから試してみました:
contains( $$QT_MAJOR_VERSION, 5 ) {
message(" ================ QT 5 ================ ")
QT += widgets
} else {
message(" ================ QT 4 ================ ")
}
しかし、それもうまくいきませんでした。contains( "$$QT_MAJOR_VERSION", "5" ) のような他のさまざまな組み合わせは機能しません。
$$QT_MAJOR_VERSION が 4 または 5 であるという仮定は、次のような行でチェックされます。
message( $$QT_MAJOR_VERSION )
この方法でローカル変数を設定し、その値をテストしても機能しません。
これらすべての結論は、qmake メカニズムについて基本的なことを理解していないということです。では、変数を qmake .pro ファイルの値と比較するにはどうすればよいでしょうか。