Qt Creator: how to tell win32 from win64
我必须在 .pro 文件中做这样的事情:
1 2 3 4 5 6 | win32 { LIBS += -L../3rdparty/libusb-win32/lib/msvc -llibusb } else win64 { LIBS += -L../3rdparty/libusb-win32/lib/msvc_x64 -llibusb } |
问题是它不起作用,它总是链接win32库。
有什么建议吗?
您可以使用
1 2 3 4 5 | contains(QT_ARCH, i386) { message("32-bit") }else { message("64-bit") } |
当目标是 32 位时,变量返回
2016 年 10 月更新。以下代码适用于 Windows(至少适用于所有最近的 MSVC 编译器 - 未测试 MinGW)、Mac OS X (clang) 和 Linux (GCC)。如果您不需要 Qt 4 支持,请随意省略第一个子句并直接引用
1 2 3 4 5 6 7 8 9 10 11 | 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 } |
这是我们的做法:
1 2 3 4 5 6 7 | win32 { win32-g++:contains(QMAKE_HOST.arch, x86_64):{ LIBS += ... #for win64 } else { LIBS += ... #for win32 } } |