windows - para - qt license
Identificador para la configuración de win64 en Qmake (5)
¿Hay un identificador "win64" en los archivos del proyecto Qmake? La documentación avanzada de Qt Qmake no menciona más que unix / macx / win32.
Hasta ahora he intentado usar:
win32:message("using win32")
win64:message("using win64")
amd64:message("using amd64")
El resultado es siempre "usar win32".
¿Debo usar un archivo de proyecto separado para proyectos x32 y x64, para que compilen contra las bibliotecas correctas? ¿Hay alguna otra forma de identificar entre entornos de 32 bits y de 64 bits?
ACTUALIZACIÓN: desde hace muy poco, Qt tiene una forma de hacerlo de forma transparente y fácil, sin molestias manuales:
win32-g++:contains(QMAKE_HOST.arch, x86_64):{
do something
}
Desde Qt5 puede usar QT_ARCH
para detectar si su configuración es 32 o 64. Cuando el objetivo es de 32 bits, eso devuelve i386
y en el caso de un destino de 64 bits tiene el valor de x86_64
. Entonces se puede usar como:
contains(QT_ARCH, i386) {
message("32-bit")
} else {
message("64-bit")
}
He descubierto una forma de hacerlo.
Qt le permite pasar parámetros de configuración arbitrarios que puede usar para separar los objetivos.
Al tener una configuración condicional en su archivo de proyecto:
CONFIG(myX64, myX64|myX32) {
LIBPATH += C:/Coding/MSSDK60A/Lib/x64
} else {
LIBPATH += C:/Coding/MSSDK60A/Lib
}
y pasando esa configuración personalizada a qmake
con
qmake CONFIG+=myX64
obtienes el resultado deseado
Lo hago así
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
}
}
No, pero puedes crear y usar una nueva mkspec, creo que qmake también define un identificador de plataforma con el nombre de la mkspec actual. ¿Por qué necesitas probar 64 bits?
Caña