Vio*_*ffe 1 c++ 64-bit qt qmake
我必须在.pro文件中执行以下操作:
win32 {
LIBS += -L../3rdparty/libusb-win32/lib/msvc -llibusb
} else
win64 {
LIBS += -L../3rdparty/libusb-win32/lib/msvc_x64 -llibusb
}
Run Code Online (Sandbox Code Playgroud)
问题是它不起作用,它总是链接win32库。有什么建议么?
2016 年 10 月更新。以下代码适用于 Windows(至少适用于所有最近的 MSVC 编译器 - 未测试 MinGW)、Mac OS X(clang)和 Linux(GCC)。QT_ARCH如果您不需要 Qt 4 支持,请随意省略第一个子句并直接参考。
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
}
Run Code Online (Sandbox Code Playgroud)
小智 5
这是我们如何做到的:
win32 {
win32-g++:contains(QMAKE_HOST.arch, x86_64):{
LIBS += ... #for win64
} else {
LIBS += ... #for win32
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用QT_ARCH变量来检测您的配置是32还是64:
contains(QT_ARCH, i386) {
message("32-bit")
}else {
message("64-bit")
}
Run Code Online (Sandbox Code Playgroud)
当目标是32位时,该变量返回i386,对于64位目标,该变量的值为x86_64。
| 归档时间: |
|
| 查看次数: |
5039 次 |
| 最近记录: |