qmake - x64如何为x64 Visual Studio解决方案生成makespec?

4
我们目前使用qmake和.pro文件来创建Visual Studio 2008项目,但默认的解决方案平台是Win32。每次重建项目时,我都必须手动更改平台为x64,进入配置管理器,并从Win32解决方案中复制设置。
我没有在网上/QT论坛上找到自动创建已配置为x64构建的VS2008解决方案的方法。我需要为QT创建自己的makespec吗?我需要指定与x64特定的VS标志吗?是否有人可以发布一个他们成功用于创建x64-spec项目的示例?

由于项目文件是XML格式,你可以编写一个批处理工具来复制设置等内容。 - Ian Ringrose
3个回答

4
这是一个已知问题。在Qt bugtracker中有几个相关的错误:QTBUG-6910QTBUG-4046。第二个条目还有一个链接到一个补丁,如果您正在构建Qt,则可以使用该补丁。为了增加此问题的可见性,请投票以修复这些错误。

谢谢,我使用了第二个链接中的3891补丁,并从源代码编译了QT。然后,我在我的qmake文件中添加了以下内容:contains(QMAKE_HOST.arch, x86):{ QMAKE_LFLAGS *= /MACHINE:X86 }contains(QMAKE_HOST.arch, x86_64):{ QMAKE_LFLAGS *= /MACHINE:X64 }这样就可以了!虽然有点麻烦,但知道如何从源代码构建QT非常有帮助,即使只有两个命令。 - autonomy
谢谢,但是有一个错误,应该是QMAKE_LFLAGS+=而不是*=。 - Borzh

2
感谢the_mandrill提供的解决方案:
首先,您需要下载补丁3891。 然后,您需要应用该补丁——您可以为Windows找到补丁实用程序,但我只是手动编辑了补丁中差异化的文件; 这些文件位于\qmake\generators\win32 然后,您需要从头开始构建QT,方法是在命令提示符中导航(确保它是Visual Studio 2008 x64命令提示符,来自Visual Studio目录),转到您安装QT的目录,可能是C:/QT/4.7.0,然后输入configure,然后nmake
构建QT需要很长时间。 同时,将以下内容添加到您的qmake文件中将自动检测您的主机操作系统。 请记住,此解决方案不会在x64上生成win32和x64配置 - 仅为x64配置。
contains(QMAKE_HOST.arch, x86):{
QMAKE_LFLAGS *= /MACHINE:X86
}

contains(QMAKE_HOST.arch, x86_64):{
QMAKE_LFLAGS *= /MACHINE:X64
}

这将生成一个可正常工作的x64 Visual Studio解决方案,编译和链接时不会出现错误。


1

这个问题在4.8版本中得到了修复。

你需要从VS x64命令提示符中运行qmake,这样它就可以检测到PATH变量中的amd64编译器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接