8

qmakeは、いくつかの組み込みプラットフォームスコープを提供し、プロジェクトファイルが現在のプラットフォームに応じて異なる操作を実行できるようにします。

win32 {
    ...
}
unix {
    ...
}

ディレクトリ内のすべてのプラットフォーム仕様をmkspecs使用して、さまざまなプラットフォーム/コンパイラの組み合わせをテストすることもできます。

linux-g++ {
    ...
}
win32-g++ {
    ...
}
win32-msvc2003 {
    ...
}

ただし、コンパイラのみをテストする方法を見つけることができないようです(OSなし)

#This does not work
g++ {
    ...
}
msvc {
    ...
}

すべての組み合わせをリストすることなくこれを行う方法はありますか(linux-g++ | win32-g++ | cygwin-g++ | ... {})?これが不可能な場合、正当な理由がありますか?

4

2 に答える 2

9

あなたはこのようにそれを行うことができます:

*-g++ {
    ...
}
win32-msvc* {
    ...
}
于 2013-01-25T14:13:15.340 に答える
3

これらのビルド プラットフォーム スコープは、Qt インストール ディレクトリのqmake 仕様に基づいています。プラットフォーム スコープが解決される方法は文書化されていませんが、qmake は内部的に正規表現を使用して、スコープが現在の .xml に適用されるかどうかを判断しているようmkspecsです。

ワイルドカード マッチングのみが有効です (例: ?, *, [])

qmake 内では、 , には、マジック キーワードとしても、一致する正規表現としても、いくつかの意味があることに注意しunixwin32くださいmacx

于 2013-01-25T14:33:41.980 に答える