首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt创建者:如何区分win32和win64

Qt创建者:如何区分win32和win64
EN

Stack Overflow用户
提问于 2011-07-05 15:58:15
回答 3查看 6.8K关注 0票数 2

我必须在一个.pro文件中做类似这样的事情:

代码语言:javascript
复制
win32 {
    LIBS += -L../3rdparty/libusb-win32/lib/msvc -llibusb
} else
win64 {
    LIBS += -L../3rdparty/libusb-win32/lib/msvc_x64 -llibusb
}

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-09 13:49:47

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

代码语言:javascript
复制
contains(QT_ARCH, i386) {
    message("32-bit")
}else {
    message("64-bit")
}

当目标是32位时,该变量返回i386,如果是64位目标,它的值为x86_64

票数 8
EN

Stack Overflow用户

发布于 2011-11-04 20:35:43

2016年10月更新。下面的代码可以在Windows (至少是所有最新的MSVC编译器--没有测试MinGW)、Mac (clang)和Linux (GCC)上运行。如果不需要Qt4支持,可以省略第一个子句,直接引用QT_ARCH

代码语言:javascript
复制
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
}
票数 8
EN

Stack Overflow用户

发布于 2011-08-22 13:08:08

我们是这样做的:

代码语言:javascript
复制
win32 {
win32-g++:contains(QMAKE_HOST.arch, x86_64):{
    LIBS += ... #for win64
} else {
    LIBS += ... #for win32
}
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6579516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档