質問

qmakeのプロジェクトファイルで「Win64の」識別子はありますか? Qtのqmakeのはのドキュメントを進めたUNIX / MACX / win32の以外に言及していません。

これまでのところ、私が使用してみました。

win32:message("using win32")
win64:message("using win64")
amd64:message("using amd64")

結果は常に "のWin32を使用して" されます。

私はX32とx64のプロジェクトのための独立したプロジェクト・ファイルを使用する必要がありますので、彼らは正しいライブラリに対してコンパイルのでしょうか? 32ビットと64ビット環境間で識別するための他の方法はありますか?

役に立ちましたか?

解決

私はこのようにそれを行う

win32 {

    ## Windows common build here

    !contains(QMAKE_TARGET.arch, x86_64) {
        message("x86 build")

        ## Windows x86 (32bit) specific build here

    } else {
        message("x86_64 build")

        ## Windows x64 (64bit) specific build here

    }
}

他のヒント

Qt5ので、あなたの設定がターゲットがQT_ARCHを返し、64ビットのターゲットの場合には、それはi386の値を持つ32ビット、あるときは32か64であるかどうかを検出するx86_64を使用することができます。

:だから、のように使用することができます
contains(QT_ARCH, i386) {
    message("32-bit")
} else {
    message("64-bit")
}

UPDATE:ごく最近、Qtは手動手間をかけずに、透過的かつ簡単にこれを行うための方法を持っているのでます:

win32-g++:contains(QMAKE_HOST.arch, x86_64):{
    do something
}

ソース:ブランドのQtのDevよくある質問の新しい

私はそれを行うための一つの方法を考え出しました。

Qtは、あなたが目標を分離するために使用することができ、任意の設定パラメータを渡すことができます。

あなたのプロジェクトファイルに条件設定を有することによります:

CONFIG(myX64, myX64|myX32) {
    LIBPATH += C:\Coding\MSSDK60A\Lib\x64
} else {
    LIBPATH += C:\Coding\MSSDK60A\Lib
}

とカスタム設定は、

qmakeすることを渡します
qmake CONFIG+=myX64

あなたは指名手配結果を得ます。

いいえ、しかし、あなたは新しいmkspecを作成して使用することができ、私はqmakeのは、現在のmkspecにちなんで名付けられたプラットフォームの識別子を定義だと思います。なぜあなたは64ビットのためにテストする必要がありますか?

リード

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top