Visual Studio 中出现 D8049 错误的原因是啥?
Posted
技术标签:
【中文标题】Visual Studio 中出现 D8049 错误的原因是啥?【英文标题】:What's the cause of a D8049 error in visual studio?Visual Studio 中出现 D8049 错误的原因是什么? 【发布时间】:2016-02-08 03:58:43 【问题描述】:我正在使用 openframeworks 创建一个项目(完整源代码在这里:https://github.com/morphogencc/ofxAsio/tree/master/example-udpreceiver),并且空项目似乎可以正常编译。
我添加了 ASIO 库和一些头类,现在项目似乎给我以下错误:
1>------ Build started: Project: example-udpreceiver, Configuration: Debug x64 ------
1> main.cpp
1>cl : Command line error D8049: cannot execute 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\c1xx.dll': command line is too long to fit in debug record
1>cl : Command line error D8040: error creating or communicating with child process
我在 *** 甚至微软的页面上都找不到任何错误 D8049 的示例,而且谷歌几乎没有找到任何结果。唯一远程有用的是这个 github 问题:
https://github.com/deplinenoise/tundra/issues/270
但我仍然不确定是什么导致了问题。有没有人熟悉这个错误,并且可以推荐一种方法来解决导致它的原因?
提前致谢!
【问题讨论】:
【参考方案1】:对使用 UE4 的我来说,这是一个间歇性错误。
我添加了“bLegacyPublicIncludePaths = false;”到 project.Build.cs 的最里面的块并重新编译没有错误。
然后我删除了该行并再次编译,没有错误。
错误消息建议添加“DefaultBuildSettings = BuildSettingsVersion.V2;”到 project.Target.cs 工作。
【讨论】:
【参考方案2】:这听起来有点奇怪,因为它基本上来自内部生成的数据。但是,您确实可以控制它。从表面上看错误消息,您可能在命令行中传入了许多/很多定义的符号(或者您确实有冗长的定义),或者您可能有一些冗长的文件路径。
如果您查看项目属性,C++ 部分下的选项之一是“命令行”,它将准确显示传递给编译器的内容。当您查看时,您可以看到您有许多或冗长的参数,然后进行更改以缩短它们。
定义太多?将它们放在标题中(可能是 stdafx.h)并以这种方式包含它们。
长文件路径?缩短路径,将文件放在其他位置,或为使用较短路径的真实目录设置文件系统别名。
【讨论】:
谢谢;查看命令行参数帮助我理清了不应该添加的内容!包含太多不相关的文件作为附加包含目录。以上是关于Visual Studio 中出现 D8049 错误的原因是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft Visual Studio 2015打开TFS大量报错问题解决方案
Visual Studio中的scanf()报错以及编译器的选择
Unity报错解决办法:Visual Studio Editor Package version 2.0.11 is available........
Visual Studio 2017 IDE之xml过大报错