【发布时间】:2014-05-19 08:17:10
【问题描述】:
我的项目(OCX)有一些问题:当我尝试在发布模式下编译时,编译停止并显示以下消息:
"1>C:\Program 文件 (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets(1178,5): 错误 MSB6006:“midl.exe”以代码 2214 退出。”
我找不到任何对调试错误有用的信息,因为它不是错误代码,而是退出代码。我可以做什么? 它在开始解析“oaidl.acf”后立即停止。
【问题讨论】:
-
"MIDL2214:由于先前的错误,语义检查不完整。MIDL 编译器对输入文件进行两次传递以解决任何前向声明。由于在第一次传递期间遇到错误,检查第二遍尚未执行。与前向声明相关的未报告错误可能仍存在于文件中。 source
-
好的,但是错误不是 MIDL2214 是 MSB6006。 2214 是 MIDL 的退出代码。是一样的吗?顺便说一句,即使我认为这是对错误的正确解释,我仍然无法调试问题。
-
如果子程序未成功执行,则会引发 MSB6006。在这种情况下,MIDL 返回了一个错误。 MIDL 的错误代码描述出了什么问题。所以实际的错误是 MIDL2214。如果没有更多细节,很难猜测真正的原因是什么。如果它在调试模式下构建,但不是在发布模式下,我猜是缺少一些库引用或构建配置中的某些内容错误。
-
我可以提供哪些详细信息?
-
您可以尝试在命令提示符下运行 MIDL,看看它是否会打印一些更详细的错误信息。
标签: c++ visual-studio-2013 midl