视觉工作室中D8049错误的原因是什么?

时间:2016-02-08 03:58:44

标签: c++ visual-studio compiler-errors visual-studio-2015 openframeworks

我正在使用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

我无法在stackoverflow上找到任何错误D8049的例子,甚至在微软的页面上也找不到,谷歌的结果很少见。唯一远程有用的是这个github问题:

https://github.com/deplinenoise/tundra/issues/270

但我仍然不确定是什么导致了这个问题。是否有人熟悉此错误,并可以推荐一种方法来排除导致它的原因?

提前感谢!

2 个答案:

答案 0 :(得分:3)

对我来说,使用UE4是一个间歇性错误。

我添加了“ bLegacyPublicIncludePaths = false;”到project.Build.cs的最里面的块,并重新编译而没有错误。

然后我删除了该行并再次编译,没有错误。

错误消息建议添加“ DefaultBuildSettings = BuildSettingsVersion.V2;”。到起作用的project.Target.cs。

答案 1 :(得分:1)

这是一个奇怪的声音错误,因为它来自基本上内部生成的数据。但是,你确实可以控制它。在面值处获取错误消息时,您可能在命令行中传递了许多/许多已定义的符号(或者您具有的长定义符号),或者您可能有一些冗长的文件路径。

如果查看项目属性,C ++部分下的一个选项是"命令行",它将准确显示传递给编译器的内容。当您查看可以看到有多个或冗长参数的位置时,然后进行更改以缩短它们。

定义太多了?将它们放在标题中(可能是stdafx.h)并以这种方式包含它们。

长文件路径?缩短路径,将文件放在其他位置,或者将文件系统别名设置为使用较短路径的真实目录。