qt5.7.1 (create4.2.0)+msvc2015 安装后无法编译 & 缺少h文件

其实问题的本质是,系统中没有vs2015的注册信息导致

一开始是报:

"'cl' 不是内部或外部命令,也不是可运行的程序"解决方案 

通过在环境变量中添加了C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin 路径解决,但是这不治本质

后来能编译后,报缺少h文件的问题。

深入了解后,发现是qt使用了msvc的编译版本:Microsoft Visual C++ Compiler 14.0 (amd64) 

在qt中应用此版本的编译器后,会自动调用:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat 

此bat脚本会根据版本信息,自动调用与之相应的bat,代码如下,也可以自己查看全部代码:

:check_platform
if /i %1 == x86 goto x86
if /i %1 == amd64 goto amd64
if /i %1 == x64 goto amd64

我的版本实际调用时,时跳转到了:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat 

但因为,注册表中没有vs2015信息,会在此语句出报错:

:start
@call :GetVSCommonToolsDir
@if "%VS140COMNTOOLS%"=="" goto error_no_VS140COMNTOOLSDIR

直接跳到:

:error_no_VS140COMNTOOLSDIR
@echo ERROR: Cannot determine the location of the VS Common Tools folder.
@goto end

别的博客解决办法,在我这里都没没有效果,其中手写部分bat代码,将获取路径代码换成绝对路径代码,但是问题是涉及到的环境路径太多了,最终放弃

修改环境变量的办法也无法奏效。

最终无可奈何,安装了另外版本的win10,之后所有的qt安装工作异常顺利。

不过折腾的整个过程,非但不是浪费时间,反而非常有用。理解了安装过程的各个步骤,学到了非常多知识。

 

 

posted @ 2018-10-19 22:06  muwen-Sekiro  阅读(1442)  评论(0编辑  收藏  举报