首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visual 2013崩溃,用于非静态数据成员初始化。

Visual 2013崩溃,用于非静态数据成员初始化。
EN

Stack Overflow用户
提问于 2016-04-25 07:55:17
回答 3查看 1.7K关注 0票数 3

我想在windows 10上用visual 2013编译三位一体核心 (x86和x64都测试过了)

我得到了这个错误,并测试了每个解决方案,例如:

1.将附加选项的/Zm从/Zm500更改为/Zm2000(最大)

2.禁用预编译头

3.禁用优化

4.重新安装Visual

5.重新安装windows 10

visual错误描述:

代码语言:javascript
复制
Error   1   error C1001: An internal error has occurred in the compiler.    \TrinityCore-3.3.5\src\server\game\Server\WorldSocket.cpp   256 1   game

Error   2   error C1060: compiler is out of heap space  c\src\server\game\c1xx  game

Error   3   error D8040: error creating or communicating with child process c\src\server\game\cl    game

事件日志:

代码语言:javascript
复制
Faulting application name: CL.exe, version: 18.0.21005.1, time stamp: 0x524faabf
Faulting module name: c1xx.dll, version: 18.0.21005.1, time stamp: 0x524faa90
Exception code: 0xc0000005
Fault offset: 0x0025236e
Faulting process id: 0x1948
Faulting application start time: 0x01d19f24d391755f
Faulting application path: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe
Faulting module path: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\c1xx.dll
Report Id: d98e09ae-0b18-11e6-b361-1008b14a12cc
Faulting package full name: 
Faulting package-relative application ID: 

vs输出错误:

代码语言:javascript
复制
TrinityCore-3.3.5\src\server\game\Server\WorldSocket.cpp(256): fatal error C1001: An internal error has occurred in the compiler.
1>  (compiler file 'f:\dd\vctools\compiler\cxxfe\sl\p1\c\convert.cpp', line 9608)
1>   To work around this problem, try simplifying or changing the program near the locations listed above.
1>  Please choose the Technical Support command on the Visual C++ 
1>   Help menu, or open the Technical Support help file for more information
1>  Opcodes.cpp
1>c1xx : fatal error C1060: compiler is out of heap space
1>          An internal error has occurred in the compiler.
1>  (compiler file 'msc1.cpp', line 1325)
1>   To work around this problem, try simplifying or changing the program near the locations listed above.
1>  Please choose the Technical Support command on the Visual C++ 
1>   Help menu, or open the Technical Support help file for more information
1>cl : Command line error D8040: error creating or communicating with child process
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

附带的事件日志文件:

代码语言:javascript
复制
Version=1
EventType=APPCRASH
EventTime=131060826745545591
ReportType=2
Consent=1
UploadTime=131060826747020586
ReportIdentifier=e3cb3d99-0b13-11e6-b361-1008b14a12cc
IntegratorReportIdentifier=e3cb3d98-0b13-11e6-b361-1008b14a12cc
WOW64=1
Response.BucketId=d11da6a9b6e3e8a8c8d50161959694bb
Response.BucketTable=1
Response.LegacyBucketId=-389226431
Response.type=4
Sig[0].Name=Application Name
Sig[0].Value=CL.exe
Sig[1].Name=Application Version
Sig[1].Value=18.0.21005.1
Sig[2].Name=Application Timestamp
Sig[2].Value=524faabf
Sig[3].Name=Fault Module Name
Sig[3].Value=c1xx.dll
Sig[4].Name=Fault Module Version
Sig[4].Value=18.0.21005.1
Sig[5].Name=Fault Module Timestamp
Sig[5].Value=524faa90
Sig[6].Name=Exception Code
Sig[6].Value=c0000005
Sig[7].Name=Exception Offset
Sig[7].Value=0025236e
DynamicSig[1].Name=OS Version
DynamicSig[1].Value=10.0.10586.2.0.0.256.48
DynamicSig[2].Name=Locale ID
DynamicSig[2].Value=1033
UI[2]=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe
UI[3]=Microsoft (R) C//C++ Optimizing Compiler has stopped working
UI[4]=Windows can check online for a solution to the problem.
UI[5]=Check online for a solution and close the program
UI[6]=Check online for a solution later and close the program
UI[7]=Close the program
LoadedModule[0]=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe
LoadedModule[1]=C:\Windows\SYSTEM32\ntdll.dll
LoadedModule[2]=C:\Windows\SYSTEM32\KERNEL32.DLL
LoadedModule[3]=C:\Windows\SYSTEM32\KERNELBASE.dll
LoadedModule[4]=C:\Program Files (x86)\MSBuild\12.0\bin\FileTracker.dll
LoadedModule[5]=C:\Windows\SYSTEM32\ADVAPI32.dll
LoadedModule[6]=C:\Windows\SYSTEM32\msvcrt.dll
LoadedModule[7]=C:\Windows\SYSTEM32\sechost.dll
LoadedModule[8]=C:\Windows\SYSTEM32\RPCRT4.dll
LoadedModule[9]=C:\Windows\SYSTEM32\SspiCli.dll
LoadedModule[10]=C:\Windows\SYSTEM32\CRYPTBASE.dll
LoadedModule[11]=C:\Windows\SYSTEM32\bcryptPrimitives.dll
LoadedModule[12]=C:\Windows\SYSTEM32\ole32.dll
LoadedModule[13]=C:\Windows\SYSTEM32\combase.dll
LoadedModule[14]=C:\Windows\SYSTEM32\GDI32.dll
LoadedModule[15]=C:\Windows\SYSTEM32\USER32.dll
LoadedModule[16]=C:\Windows\SYSTEM32\MSVCR120.dll
LoadedModule[17]=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\mspdb120.dll
LoadedModule[18]=C:\Windows\SYSTEM32\VERSION.dll
LoadedModule[19]=C:\Windows\SYSTEM32\IMM32.DLL
LoadedModule[20]=C:\Windows\SYSTEM32\CRYPTSP.dll
LoadedModule[21]=C:\Windows\system32\rsaenh.dll
LoadedModule[22]=C:\Windows\SYSTEM32\bcrypt.dll
LoadedModule[23]=C:\Windows\SYSTEM32\MSVCP120.dll
LoadedModule[24]=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\mspdbcore.dll
LoadedModule[25]=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\c2.dll
LoadedModule[26]=C:\Windows\SYSTEM32\SHLWAPI.dll
LoadedModule[27]=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\c1xx.dll
LoadedModule[28]=C:\Windows\system32\apphelp.dll
State[0].Key=Transport.DoneStage1
State[0].Value=1
FriendlyEventName=Stopped working
ConsentKey=APPCRASH
AppName=Microsoft (R) C//C++ Optimizing Compiler
AppPath=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\cl.exe
ApplicationIdentity=00000000000000000000000000000000

我真的很困惑,因为我用这个步骤和这个visual编译这个项目很多次。

编辑1: --我创建了新的Win32Project,并将这段代码放在上面:

代码语言:javascript
复制
#include "stdafx.h"

# define LENGTH 20

typedef unsigned char      uint8_t;
typedef uint8_t uint8;

struct test
{
    uint8 intT[LENGTH] = {};
};

当我再次编译这个错误时:

代码语言:javascript
复制
Error   1   error C1001: An internal error has occurred in the compiler.    \Projects\Win32Project1\Win32Project1\Win32Project1.cpp 13  1   Win32Project1
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-30 10:33:19

好的,问题终于解决了,只需要更新Visual 2013到Visual 2013更新5

Update 5 For Visual 2013上,此bug已完全修复。

感谢您“轨道上的轻竞赛”和"Niall“的回答和帮助:)

我很快乐

票数 2
EN

Stack Overflow用户

发布于 2016-04-25 11:48:40

根据定义,“内部编译器错误”(或ICE)是一个编译器错误。您的程序中很可能有触发该错误的代码。您的崩溃似乎是由使用非静态数据成员初始化(NSDMI)和微软承认,他们在Visual 2013中对NSDMI的支持充其量是不可靠的触发的。

不幸的是,我们编译器中用于处理初始化的代码(其中一些是30年前编写的)受到了许多长期的体系结构限制。这段代码对于C++03风格的初始化来说已经足够了,但是NSDMI,一种C++11特性,使得它表现出了这些严重的缺陷。

考虑到这一点,您也可以尝试简单地升级您的工具链。但是,您的安装也可能已完全损坏/损坏。

无论哪种方式,您的第一个任务是重新安装Visual并查看问题是否仍然存在。也许试着在另一台计算机上编译这个项目。

如果这不能修复它,则需要生成一个最小测试案例并将其提交给开发人员审查(在MS上)。请务必回到这里,并联系我们张贴的问题,以便我可以更新任何相关的信息,从开发人员(例如,版本的错误是固定的)。

票数 3
EN

Stack Overflow用户

发布于 2016-04-25 11:24:26

这是冰(内部编译器错误)。这是由WorldSocket.cpp文件第256行的代码引起的。

在该文件中,类AuthSession使用非静态默认成员初始化(NSDMI),其中包含一个数组(在第256行),该数组显示在错误消息中。

VS2013不完全支持NSDMI功能。它被添加到C++11中,VS2013有执行NSDMI方面的限制

uint8 Digest[SHA_DIGEST_LENGTH] = {};可能太难编译了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36834849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档