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


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

    一开始是报:

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

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

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

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

    在qt中应用此版本的编译器后,会自动调用:C:Program Files (x86)Microsoft Visual Studio 14.0VCvcvarsall.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.0VCinamd64vcvars64.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安装工作异常顺利。

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

     

  • 相关阅读:
    css中的选择器
    HTML5总结
    table中的一些另类标签
    form表单
    Laravel常用命令行中文版
    浅谈Session与Cookie的区别与联系
    Wechat微信公众平台开发
    js中的正则表达式入门
    畅谈Redis和Memcached的区别
    php的ob缓存详解
  • 原文地址:https://www.cnblogs.com/braveCloud/p/9819187.html
Copyright © 2020-2023  润新知