Qt Creator:如何区分win32和win64

Qt Creator: how to tell win32 from win64

本文关键字:win32 win64 何区 Creator Qt      更新时间:2023-10-16

我必须在。pro文件中这样做:

win32 {
    LIBS += -L../3rdparty/libusb-win32/lib/msvc -llibusb
} else
win64 {
    LIBS += -L../3rdparty/libusb-win32/lib/msvc_x64 -llibusb
}

问题是它不工作,它总是链接win32库。有什么建议吗?

2016年10月更新。下面的代码可以在Windows(至少与所有最近的MSVC编译器一起工作-没有测试MinGW), Mac OS X (clang)和Linux (GCC)上工作。如果您不需要Qt 4支持,请随意省略第一个子句并直接引用QT_ARCH

greaterThan(QT_MAJOR_VERSION, 4) {
    TARGET_ARCH=$${QT_ARCH}
} else {
    TARGET_ARCH=$${QMAKE_HOST.arch}
}
contains(TARGET_ARCH, x86_64) {
    ARCHITECTURE = x64
} else {
    ARCHITECTURE = x86
}

您可以使用QT_ARCH变量来检测您的配置是32还是64:

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

当目标为32位时,变量返回i386,当目标为64位时,变量返回x86_64

我们这样做:

win32 {
win32-g++:contains(QMAKE_HOST.arch, x86_64):{
    LIBS += ... #for win64
} else {
    LIBS += ... #for win32
}
}