qt5.12.9搭配vs1027出现编译出错的各种坑

  记录下这个VS2017搭配QT5.12.9编译出错的各种坑,目前只解决了在QtCreator下使用MSVC_x64编译。如果文中有我理解错误的地方请指出,我会做出修改,以防后续小伙伴踩坑。
  最开始在QtCreator下只要使用mscv编译器就会各种出错,不过使用MinGW编译正常。经过下面各种踩坑后能够使用MSVC_x64编译运行。
1、其中qt开机后,直接上来就是👎 error: Failed to retrieve MSVC Environment from “F:\Microsoft\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat x86”:
在这里插入图片描述
这里我百度了各种解决方法,说什么系统环境添加这3个路径,然后删除SQL环境变量路径,
这网上说的添加这3条,
C:\Windows\System32
C:\Windows
C:\Windows\System32\Wbem
链接网址: link—这是说这个方法的网址
没用,不能解决问题
在这里插入图片描述

还有个人说anaconda的问题,让去打开注册表编辑器
找到HKEY_CURRENT_USER\Software\Microsoft\Command Processor
可以看到一个AutoRun的字段,然后删除掉AutoRun
链接网址: link
没用,不能解决问题,因为我的注册表里面就没有Command Processor
在这里插入图片描述

2、没办法,我就暂时忽略掉上面那个报错,直接在qt下创建个工程,结果编译程序提示:‘cl’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。

在这里插入图片描述
网上的人又说是环境变量的问题,需要把微软编译器的路径加进去,
在这里插入图片描述
链接: link

有点用,但是编译器又提示找不到"type_traits"文件
在这里插入图片描述
在这里插入图片描述

根据前面大家的想法,我想会不会是需要将这个文件的路径加到系统环境里面去,于是我找到这个文件所在位置,将环境变量加入(这里添加路径是正确的,但是当时应该是我c++的编译器选错了所以还是提示错误)
在这里插入图片描述

在这里插入图片描述
没用,还是找不到文件,于是又继续百度,有人说什么卸载qt和vs2017的,没得法了就使用这个方式吧,于是我就去卸载了重装,并且还去把qt和vs2017的注册表文件都删除了,来来回回重装了4,5次,还是依然是这些报错,崩溃。。。
链接网址: link----------这位博主是重装后可以了,我反正是不行。

到了第3天我就想qt既然编译过不了,那我直接用vs2017创工程编译,于是用vs2017来使用,靠,也是一大堆问题.
第一个问题就是各种qt的源文件找不到,这个网上有个人说了个解决方法,不过也不能解决我下面的报错,链接网址: link.

在这里插入图片描述
网上有的人说是Qt VS Tools版本不对,于是我就开始了各个版本的测试,基本上的版本我都试过了,不是这个版本的反而更多问题,所以那些说用低版本的坑货以后还是少信他们说的话,不同环境不同版本根本不能采取同样的解决方法.
在这里插入图片描述
还有的人说是windows10的安全中心的所有功能关闭掉,我也是一脸懵逼,windows10还能把自家的软件杀掉的。。。不知道他们是怎么想的,我这里也看了下我的安全中心,我这个安全中心在我以前就被我完全关闭了,根本不会启用
在这里插入图片描述

然后我就开始着手解决MSB375和MSB417的错误原因:
a、链接网址: link.
这是解决MSB417的网上的一种做法,没用
b、链接网址: link,这个没用,而且这个解决方式还要积分去下载资源,gnmd.
c、我看这个提示是意外字符,我就去翻这个文件,根本找不到这个文件,我是一脸蒙蔽,没有文件你给我说意外的字符,没法我就想着把工程全部改成utf-8来编译。
这个utf-8安装,依次点击:工具—扩展和更新—联机,然后在里面搜索utf-8就出来了。
安装链接网址: link.

在这里插入图片描述

链接: link.
没用,改了在编译还是不行

3、2个软件都跑不了qt,那我就不能接受了,于是我就去加qq群去问,哎,不知道咋回事,反正没人愿意帮,问了就石沉大海了。
在这里插入图片描述
我都怀疑这些人是假人。。。

4、无意间看到了一篇环境变量的设置方法,于是照着添加了进来,编译到是成功了,结果提示权限不足无法运行,我去看了生成的debug文件,什么都没有,怎么可能能够运行呢,下面是细节过程。
链接网址: link
所需要配置的环境变量名和值:
在这里插入图片描述
我使用它这种方式配置了一下我的系统环境,我看这个全是x64的,x86的没有配置,所以我觉得他这个方式应该是只适用于x64,于是我将我qt的kits套的组件全部使用x64来编译。
在这里插入图片描述

然后一运行,就提示:启动程序失败,路径或者权限错误?
在这里插入图片描述
在这里插入图片描述

一看debug文件,撒都没有,哎,我猜测还是编译环境没有设置正确导致,继续查资料。。。

5、喵的,5天了,今天终于算将就成功了,我的妈呀,真坑啊。。。
第一个是kits的套配置上面可能有点问题,这个是可以编译成功的配置:
在这里插入图片描述
第二个是我把系统环境变量删除了几个,改成如下:
在这里插入图片描述

我这样配置后编译提示的是错误:LINK : fatal error LNK1158: 无法运行“rc.exe”,
在这里插入图片描述
于是我就去找这个的解决办法,结果这个方法居然能用,终于找到一个可以让我成功编译的帖子了。。。
链接网址: link.
解决方法:从windows kits 里面将rc和和rcdll.dll文件拷贝到vs2017里面的Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64下
在这里插入图片描述
拷贝至自己的vs2017文件下的
Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64:

在这里插入图片描述
然后在编译,成功:
在这里插入图片描述
6、这里提一下,这个windows kits文件是需要自己下载然后安装的,并不是c盘里面的Windows Kits,比如我的:C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs,
然后我F盘另外还装了一个Windows Kits。装了这个qt才能自动检索到你的Debuggers.
这是Windows Kits的安装网址链接: link
在这里插入图片描述
这里直接下载的操作应该是不正确的,应该是去找自己对应的版本来下载,不过我就是直接点击这里下载然后安装的。。。
在这里插入图片描述
找到自己所对应的SDK来下载:
在这里插入图片描述
下载后的安装包,点击安装包安装
在这里插入图片描述
安装的时候一定要全部都勾上,不然很多库文件或者头文件都没有,根本无法添加到系统环境变量里面。

至于SDK和kit等文件的关系,请看这篇文章:链接: link

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在手动安装了Windows Kits后,Qt就可以检测到debug,不过我老大的另外一台电脑我没有手动安装这个,我在安装VS2017的时候它就自动生成了一个Windows Kits。反正微软的东西我是有点看不懂,电脑不一样,各种奇葩的事情都会有
在这里插入图片描述
我觉得只要这个有选上就应该会自动安装才对,当时我的文件里面当时就是没有装上。反正这些软件坑得我不想再多说了,下面就是要解决QT下x86编译和VS2017创建工程编译失败的问题,战斗。。。

7、下面是qt编译各种出错的原因,以及我的解决办法,注意,我这里为了测试我的想法,已经把VS2017安和Windows Kits安装到了C盘下,不过想法是美好,现实很残酷,windows还是不给力,不会把文件路径加进去:
7.1、提示错误:Project ERROR: Cannot run compiler ‘cl’. Output:

需要加入自己的MSVC的bin文件下的编译器路径到系统环境变量中:
比如我的VS2017装在了c盘,则路径是:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64

7.2、提示缺少type_traits文件

需要加入自己的MSVC的include文件路径到系统环境变量中:
比如我的路径是:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include

7.3、提示缺少stddef.h文件

需要加入自己的Windows Kits下Include下的的ucrt文件路径到系统环境变量中:
比如我的WIndows Kits文件被我安装到了c盘下,其路径是:C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt

7.4、提示缺少ucrtd.lib

需要加入自己的Windows Kits下lib下的的ucrt文件路径到系统环境变量中:
比如我的路径:C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt\x64

7.5、提示缺少shell32.lib

需要加入自己的Windows Kits下lib下的的um文件路径到系统环境变量中:
比如我的路径:C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\um\x64

7.6、无法在别的文件执行QT程序

需要将qt下的MSVC的bin文件路径加入到环境变量
比如我的QT装在了F盘,那路径则是F:\Qt\Qt5.12.9\5.12.9\msvc2017_64\bin 
或者如果你是使用MinGW编译器,那路径就是MinGW的bin文件路径,
比如我的路径:F:\Qt\Qt5.12.9\5.12.9\mingw73_32\bin

上面只是我目前遇到的缺少文件的解决办法,其实可以自己全局搜索文件,缺少哪一个搜索到位置将路径加入到系统环境变量路径就可以了,我的路径也不一定适合你,要根据自己的安装情况来定,可能你缺少的是另外的文件。
贴上我的环境变量图:
path:
在这里插入图片描述

LIB(这个是我自己新建添加的):
在这里插入图片描述

INCLUDE(这个也是我自己新建添加的):
在这里插入图片描述

此文暂时到这里,总的来说编译器出错的原因都是路径上的问题导致的,也就是你的电脑在安装的时候,可能因为某些原因导致并没有关联上,导致需要你自己添加好路径,编译器才能找到对应的文件来编译程序。暂时在QtCreator这个IDE下将就用着msvc_x64编译把,对于32位的编译器的和VS2017下创建工程编译就暂时放弃了,很多东西都不知道咋解决,老是想着百度,搞了5天,血亏,,,后续如果找到解决办法,会继续在下面写上解决办法

补充:
  以为能够用msvc的64bit来运行,突然代码敲着敲着,在编译结果又翻车了,出现了👎 error: dependent ‘[0x7FFAF8BE7E90] ANOMALY: meaningless REX prefix used’ does not exist.
在这里插入图片描述

这个问题我暂时没解决掉,所以就放弃了msvc来编译了,先用MinGW来编译着跑着先。
网上说是和绿盾有关系,因为我的电脑加密了就是装了绿盾的,哎,心累,第一次坑得我都不想再去解决了。如果有同学知道解决办法,在下面评论的地方留下言把,先感谢各位了

在这里插入图片描述

  • 14
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值