Frage

Gibt es eine "win64" -Kennung in Qmake Projektdateien? Qt Qmake fortgeschrittene Dokumentation nicht andere nicht erwähnt als Unix / macx / win32.

Bisher habe ich versucht, mit:

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

Das Ergebnis wird immer "mit win32".

Muß ich eine separate Projekt-Datei für x32 und x64-Projekte, so würden sie gegen richtige Bibliotheken kompilieren? Gibt es eine andere Art und Weise zwischen 32-Bit- und 64-Bit-Umgebungen zu identifizieren?

War es hilfreich?

Lösung

Ich mache es wie folgt aus

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

    }
}

Andere Tipps

Da QT5 Sie QT_ARCH verwenden können, um festzustellen, ob Ihre Konfiguration 32 oder 64. Wenn das Ziel 32-Bit ist, das i386 zurückkehrt und im Falle eines 64-Bit-Ziel es den Wert von x86_64 hat. So kann es wie verwendet werden:

contains(QT_ARCH, i386) {
    message("32-bit")
} else {
    message("64-bit")
}

UPDATE: seit neuestem hat Qt eine Möglichkeit, dies zu tun, transparent und leicht, ohne manuellen Aufwand:

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

Quelle: die brandneue Qt Dev FAQ

Ich habe einen Weg gefunden, es zu tun.

Qt können Sie beliebige Konfigurations Parameter zu übergeben, die Sie verwenden können, um die Ziele zu trennen.

Durch eine bedingte config in der Projektdatei mit:

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

und vorbei die benutzerdefinierte Konfiguration mit bis qmake

qmake CONFIG+=myX64

Sie erhalten das gewünschte Ergebnis.

Nein, aber Sie können einen neuen mkspec erstellen und verwenden, glaube ich qmake auch eine Plattform Kennung nach dem aktuellen mkspec Namen definiert. Warum brauchen Sie für 64-Bit testen?

Reed

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top