我有一个示例QtCreator项目已经配置为使用Qt 5.9.2 msvc 2017 64位工具链在发行版中进行编译。我可以使用QtCreator编译它而没有任何问题(并运行可执行文件)。但是,我正在尝试学习如何从命令行编译它。这就是QtCreator在构建项目时似乎执行的操作(我将突出显示我需要手动执行的命令):
17:19:47:为Prueba项目运行步骤...
17:19:47:开始:“C:\ Qt \ 5.9.2 \ msvc2017_64 \ bin \ qmake.exe”H:\ home \ alberto \ Proyectos \ ProyectoPrueba \ Prueba \ Prueba.pro -spec Win32的MSVC
信息:创建存储文件H:\ home \ alberto \ Proyectos \ ProyectoPrueba \ build.qmake.stash
17:19:47:进程“C:\ Qt \ 5.9.2 \ msvc2017_64 \ bin \ qmake.exe”正常退出。
17:19:47:开始:“C:\ Qt \ Tools \ QtCreator \ bin \ jom.exe”qmake_all
jom 1.1.2 - 赋予你的核心权力
17:19:47:进程“C:\ Qt \ Tools \ QtCreator \ bin \ jom.exe”正常退出。
17:19:47:开始:“C:\ Qt \ Tools \ QtCreator \ bin \ jom.exe”
C:\ Qt \ Tools \ QtCreator \ bin \ jom.exe -f Makefile.Release
cl -c -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -O2 -MD -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -EHsc -DUNICODE -D_UNICODE -DWIN32 -DWIN64 -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_CORE_LIB -DNDEBUG -I .. \ Prueba -I。 -IC:\ Qt \ 5.9.2 \ msvc2017_64 \ include -IC:\ Qt \ 5.9.2 \ msvc2017_64 \ include \ QtCore -Irelease -IC:\ Qt \ 5.9.2 \ msvc2017_64 \ mkspecs \ win32-msvc -Forelease \ @H:\家\阿尔贝托\应用程序数据\本地的\ Temp \ main.obj.9744.0.jom main.cpp中 link / NOLOGO / DYNAMICBASE / NXCOMPAT / INCREMENTAL:NO / SUBSYSTEM:CONSOLE“/ MANIFESTDEPENDENCY:type ='win32'name ='Microsoft.Windows.Common-Controls'version ='6.0.0.0'publicKeyToken = '6595b64144ccf1df'language =' 'processorArchitecture =''“/ MANIFEST:embed /OUT:release\Prueba.exe @H:\ home \ alberto \ AppData \ Local \ Temp \ Prueba.exe.9744.905.jom
17:19:48:进程“C:\ Qt \ Tools \ QtCreator \ bin \ jom.exe”正常退出。 17:19:48:经过的时间:00:01。
这样,我的第一步是尝试从build目录执行qmake可执行文件,因为build dir为空。但是,我得到了以下内容:
H:\home\alberto\Proyectos\ProyectoPrueba\build>"C:\Qt\5.9.2\msvc2017_64\bin\qmake.exe" H:\home\alberto\Proyectos\ProyectoPrueba\Prueba\Prueba.pro -spec win32-msvc
Project ERROR:无法运行编译器'cl'。也许你忘了设置环境了?
所以,我不知道这里缺少什么。我还检查了Qt creator生成的原始Makefile。在文件的顶部,在一些评论中:
用于构建的Makefile:Prueba
由qmake(3.1)(Qt 5.9.2)生成
项目:.. \ Prueba \ Prueba.pro
模板:app
命令:C:\ Qt \ 5.9.2 \ msvc2017_64 \ bin \ qmake.exe -o Makefile .. \ Prueba \ Prueba.pro -spec win32-msvc
所以命令和当前工作的dir似乎都很好(唯一的区别是.pro文件的相对路径而不是绝对路径);我还使用.pro文件的相对路径获得相同的结果。