C++ Qt Windows x64构建在IDE中成功,但未在命令行上成功

C++ Qt Windows x64构建在IDE中成功,但未在命令行上成功,c++,qt,makefile,C++,Qt,Makefile,我有一个Qt项目,我正在尝试自动化。在Windows上,我为32位和64位平台构建。我正在使用Visual Studio 2013。我安装了以下Qt套件:桌面Qt 5.5.1 MSVC2013 32位和桌面Qt 5.5.1 MSVC2013 64位。所有四个版本(32位调试和发布,以及64位调试和发布)都可以在IDE中构建和运行,没有任何问题。不幸的是,从命令行生成失败,出现以下错误: fatal error LNK1112: module machine type 'X86' conflict

我有一个Qt项目,我正在尝试自动化。在Windows上,我为32位和64位平台构建。我正在使用Visual Studio 2013。我安装了以下Qt套件:桌面Qt 5.5.1 MSVC2013 32位和桌面Qt 5.5.1 MSVC2013 64位。所有四个版本(32位调试和发布,以及64位调试和发布)都可以在IDE中构建和运行,没有任何问题。不幸的是,从命令行生成失败,出现以下错误:

fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
我的命令行系统(打算最终在批处理文件中使用)运行在我的项目目录中,它是:

pushd Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
call vcvars32.bat
popd
md build64
cd build64
G:\Qt\5.5\msvc2013_64\bin\qmake.exe -spec win32-msvc2013 -o Makefile ..\Maps.pro
G:\Qt\Tools\QtCreator\bin\jom.exe -f Makefile.Release
我在命令窗口中使用此命令(在使用vcvars32设置路径以便可以找到诸如nmake、rc和link之类的VisualStudio工具之后)并获得错误。请注意,命令行方法非常适合我的32位构建

我使用的qmake命令行是从IDE创建的Makefile中的注释中记录的命令行复制而来的,IDE声称这是用于创建该Makefile的命令。我知道“-spec win32-msvc2013”选项看起来很奇怪,但当IDE使用它时,它会工作

我使用的jom命令行是IDE使用的命令行,由编译输出窗口记录

我唯一能想到的是Qt设置了一些我不知道的“神奇”环境变量

[是的,我在谷歌上搜索了很多内容,并在这里查看了其他问题和答案,但没有找到任何适合这种情况的答案。]

这段代码

pushd Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
vcvars32.bat
popd
设置用于构建32位体系结构的环境。从不同的目录运行
vcvvars32.bat
(我认为它的名称中应该有
amd64
,目前没有Windows计算机,因此无法说出确切的目录名,但你会知道的)

或者

pushd:\程序文件(x86)\Microsoft Visual Studio\Common7\Tools”
vsvars32 x64
邻苯二胺
VS2017的更新:

对于64位体系结构,请使用以下命令:

"<DRIVE>:\Program Files (x86)\Microsoft Visual Studio\2017\<Version>\VC\Auxiliary\Build\vcvars64.bat"
“:\ProgramFiles(x86)\Microsoft Visual Studio\2017\\VC\Auxiliary\Build\vcvars64.bat”
对于32位:

"<DRIVE>:\Program Files (x86)\Microsoft Visual Studio\2017\<Version>\VC\Auxiliary\Build\vcvars32.bat"
“:\ProgramFiles(x86)\Microsoft Visual Studio\2017\\VC\Auxiliary\Build\vcvars32.bat”

感谢您提供了正确且非常快速的答案!我使用了命令“c:\ProgramFiles(x86)\MicrosoftVisualStudio12.0\vc\bin\amd64\vcvars64.bat”,而不是我以前使用的命令,构建现在可以工作了。
"<DRIVE>:\Program Files (x86)\Microsoft Visual Studio\2017\<Version>\VC\Auxiliary\Build\vcvars32.bat"