Qmake 中 win64 配置的标识符
Qmake 项目文件中是否有“win64”标识符? Qt Qmake Advanced 文档没有提及除 unix / macx / win32 以外的内容。
到目前为止,我已经尝试使用:
win32:message("using win32")
win64:message("using win64")
amd64:message("using amd64")
结果始终是“使用 win32”。
我是否必须为 x32 和 x64 项目使用单独的项目文件,以便它们能够针对正确的库进行编译? 有没有其他方法来区分 32 位和 64 位环境?
Is there a "win64" identifier in Qmake project files? Qt Qmake advanced documentation does not mention other than unix / macx / win32.
So far I've tried using:
win32:message("using win32")
win64:message("using win64")
amd64:message("using amd64")
The result is always "using win32".
Must I use a separate project-file for x32 and x64 projects, so they would compile against correct libraries? Is there any other way to identify between 32-bit and 64-bit environments?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我这样做
I do it like this
从 Qt5 开始,您可以使用 QT_ARCH 来检测您的配置是 32 位还是 64 位。当目标是 32 位时,返回 i386,如果是 64 位目标,则返回 i386它的值为
x86_64
。 所以它可以像这样使用:Since Qt5 you can use
QT_ARCH
to detect whether your configuration is 32 or 64. When the target is 32-bit, that returnsi386
and in case of a 64-bit target it has the value ofx86_64
. So it can be used like:更新:最近,Qt 有一种透明、轻松地完成此操作的方法,无需手动麻烦:
来源:全新的 Qt 开发常见问题解答
UPDATE: since very recently, Qt has a way of doing this transparently and easily, without manual hassle:
Source: the brand new Qt Dev FAQ
我已经想出了一种方法来做到这一点。
Qt 允许您传递任意配置参数,您可以使用这些参数来分隔目标。
通过在项目文件中添加条件配置:
并将该自定义配置传递给
qmake
即可获得所需的结果。
I've figured out one way to do it.
Qt allows you to pass arbitrary config parameters which you can use to separate the targets.
By having a conditional config in your project file:
and passing that custom config to
qmake
withyou get the wanted result.
不,但是你可以创建并使用一个新的 mkspec,我认为 qmake 还定义了一个以当前 mkspec 命名的平台标识符。 为什么需要测试 64 位?
芦苇
No, but you can create and use a new mkspec, I think qmake also defines a platform identifier named after the current mkspec. Why do you need to test for 64 bit?
Reed