error C3130: 内部编译器错误: 未能将插入的代码块写入PDB

最近编译cocos2d-x的test突然出现这个错误,重新编译也无法解决。

一般出现这个错误是两个原因:一个是磁盘空间不足,另一个是项目太大导致pdb文件太大,无法继续写入。

原本cocos2d-x的test项目里面的"调试信息格式"是“C7兼容(/z7)”,后来我习惯性的修改为/zI了。

MSDN中说的是:


不生成任何调试信息,因此编译较快。

/Z7

生成包含用于调试器的完整符号调试信息的 .obj 文件。 符号化调试信息包含变量的名称和类型以及函数和行号。 不生成任何
.pdb 文件。

对于第三方库的分发服务器,不生成 .pdb 文件是一个优点。 但是,在链接阶段和调试期间,用于预编译头的
.obj 文件是必需的。 如果 .pch 对象文件中只有类型信息(没有代码),则还必须使用 /Yl(为调试库插入
PCH 引用)
 进行编译。

/Zi

生成一个程序数据库(PDB),其中包含供调试器使用的类型信息和符号化调试信息。 符号化调试信息包含变量的名称和类型以及函数和行号。

/Zi 不影响优化。 但是,/Zi 的确暗示了 /debug;有关更多信息,请参见 /DEBUG(生成调试信息)

类型信息放置在 .pdb 文件而不是 .obj 文件中。

可以将 /Gm(启用最小重新生成) 和 /Zi 结合使用,但使用 /Z7 编译时不能使用 /Gm

使用 /Zi 和 /clr 编译时,DebuggableAttribute 特性将不会放置到程序集元数据中;如果要使用该特性,则必须在源代码中指定它。 该特性可影响应用程序的运行时性能。 有关
Debuggable 特性如何影响性能以及如何减轻性能影响的更多信息,请参见令映像更易于调试

/ZI

采用支持“编辑并继续”功能的格式生成程序数据库(如上所述)。 如果想使用“编辑并继续”调试,则必须使用此选项。 因为大多数优化与“编辑并继续”不兼容,所以使用 /ZI 会禁用代码中的所有 #pragma
optimize 语句。

/ZI 会导致在编译中使用 /Gy(启用函数级链接) 和 /FC(所诊断源代码文件的完整路径)

/ZI 与 /clr(公共语言运行时编译) 不兼容。


可见/Zi与/ZI差别不大,就是优化和信息完整度的差别,而/Z7则是把信息放在obj而不是pdb中,这样就不会发生pdb文件太大无法写入的问题了。



时间: 2024-10-05 16:45:51

error C3130: 内部编译器错误: 未能将插入的代码块写入PDB的相关文章

访问svc 文件,编译器错误消息: CS0016,未能写入输出文件

编译错误              说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地修改源代码.             编译器错误消息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\ncs.qms.apphost.branch\930ee5f1\66b34343\App_global.asax.dorw-abx.dll”

编译器错误消息: CS0016: 未能写入输出文件“c:/Windows/Microsoft.NET/Framework/v2.0.50727/....dll”--“拒绝访问。

错误如下: “/”应用程序中的服务器错误. 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地修改源代码. 编译器错误消息: CS0016: 未能写入输出文件“c:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/d553c2e4/701310ee /App_Web_default.aspx.cdcab7d2.seiozvdt.dll”--“拒绝访问.

引用 运行asp.net程序时候,编译器错误消息: CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Fra

引用 运行asp.net程序时候,编译器错误消息: CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\asaa\6afc8e18\e1c3edea\App_Web_masterpage.master.fdf7a39c.r2drwb6q.dll”--“拒绝访问. ” 运行asp.net程序时候,编译器错误消息: CS0016: 未能写入输出文件“c:\WINDOWS\Micr

AVAudioPlayer 的 Error Domain=NSOSStatusErrorDomain Code=-10875 "未能完成操作。(“OSStatus”错误 -10875。)"

今天在做一个项目,因为要播放一个音频,就选择用 AVAudioPlayer来来做,因为以前用过,也没有注意太多后来就直接写,但是写好之后运行看效果,怎么也播放不出来,本来是因为本地音频文件有问题,后来重新找一个文件然后在播放,还是出现同样的问题. 用这段代码,以前是正常的,现在就不可以了,(网上还有好多开发人员用该方式是没有问题) - (void)playRuningDistance:(TrainingPlayAudioType)playType{ NSString *playFileName

编译器错误消息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\b1b124ac\2fb984fc\App_global.asax.vbtifrrw.dll”--“拒绝访问。 ”

"/"应用程序中的服务器错误. 运行时错误 说明: 处理您的请求时发生异常.此外,对第一个异常执行自定义错误页时发生另一异常.已终止请求. "/"应用程序中的服务器错误. 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地修改源代码. 编译器错误消息: CS0016: 未能写入输出文件"c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP

Microsoft VBScript 编译器错误 错误原因 代码大全

Microsoft VBScript 编译器错误 错误 '' 缺少语句 ActiveServerPages,ASP0126(0x80004005)-->找不到包含文件 MicrosoftOLEDBProviderforODBCDrivers(0x80040E21)-->sql语句出错(数据类型不匹配或表名(字段名)错误或表处于编辑状态,或表不存在于conn打开的数据库中) MicrosoftOLEDBProviderforODBCDrivers(0x80040E14)-->sql语句出错

MVC 部署出现错误未能写入输出文件xxxxxxx.

编译器错误消息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\36cab33f\ccc2a5bd\App_global.asax.c06edrcv.dll”--“拒绝访问. ” 解决方案是:为  “C:\Windows\temp”  文件夹设置 用户访问权限. 用户选择 “IIS_IUserS” ,设置 完全控制权限,

IIS 编译器错误消息 CS0016

一.错误描述:编译器错误消息: CS0016: 未能写入输出文件"c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\491c7102\33ebe5b7\App_Web_three.cshtml.62285242.fhbj74eg.dll"--"拒绝访问. " 二.解决办法 1)   在 C:\Windows 目录下找到 Temp 文件,没有就创建一个. 2)  

编译器错误消息: CS0234: 命名空间“Purple”中不存在类型或命名空间名称“Model”(是否缺少程序集引用?)

编译错误 “/storeimg”应用程序中的服务器错误. 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地修改源代码. 编译器错误消息: CS0234: 命名空间“Purple”中不存在类型或命名空间名称“Model”(是否缺少程序集引用?) 源错误:   行 51: <pages> 行 52: <namespaces> 行 53: <add namespace="Purple.Model" />