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