在vs中进行qt桌面应用开发时,编译器堆溢出的编译错误(error C1060编译器堆内存不足)

Posted 小哈龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在vs中进行qt桌面应用开发时,编译器堆溢出的编译错误(error C1060编译器堆内存不足)相关的知识,希望对你有一定的参考价值。

本文转载自:​​​​​​在vs2019中进行qt桌面应用开发时,编译器堆溢出的编译错误(error C1060编译器堆内存不足) - 小油人 - 博客园

前言:

项目中遇见这种情况,刚开始以为是使用的静态或者全局变量等太多,导致堆不够用,后来发现是资源文件添加的图片太多了,我资源文件加起来一共20M左右

一、错误现象

二、错误原因分析

1、此次错误出现的原因:当在qt资源文件中加入过多图片时(22Mb),编译文件内容过大导致

2、本质原因:vs2019中编译器默认是32位的,当参与编译的文件过大时,将会导致编译器堆溢出

三、应对方法

1、若是在QtCreator中开发qt项目,因资源文件过大导致编译器堆溢出,那么可以 在项目 .pro 文件中修改配置:CONFIG += resources_big

2、若是在Vs中进行项目开发时,编译提示编译器堆空间不足,那么可以打开项目的 .vcxproj 文件;找到 <PropertyGroup Label="Globals">节点,并在该节点下添加 <PreferredToolArchitecture>x64</PreferredToolArchitecture>,将默认使用32位的编译器更换位64位,此时编译则问题解决

  添加前:

<PropertyGroup Label="Globals">
<ProjectGuid>B12702AD-ABFB-343A-A199-8E24837244A3</ProjectGuid>
<Keyword>Qt4VSv1.0</Keyword>
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
</PropertyGroup>

  添加后:

<PropertyGroup Label="Globals">
<ProjectGuid>B12702AD-ABFB-343A-A199-8E24837244A3</ProjectGuid>
<Keyword>Qt4VSv1.0</Keyword>
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>

<PreferredToolArchitecture>x64</PreferredToolArchitecture>

</PropertyGroup>

 

以上是关于在vs中进行qt桌面应用开发时,编译器堆溢出的编译错误(error C1060编译器堆内存不足)的主要内容,如果未能解决你的问题,请参考以下文章

QT5.8+VS2015 开发时遇到的坑

QT用VS还是MINGW编译好,有啥区别

vs不能编译qt

vs2022 编译遇见编译器堆空间不足,解决办法(针对CMAKE工程)

vs2022 编译遇见编译器堆空间不足,解决办法(针对CMAKE工程)

VS2017搭建QT5编译QT