visual studio中出现D8049错误是什么原因?

问题描述 投票:0回答:2

我正在用openframeworks创建一个项目(完整的源代码在这里。https:/github.commorphogenccofxAsiotreemasterexample-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.comdeplinenoisetundraissues270

但是我还是不知道是什么原因造成的。 有谁熟悉这种错误,能推荐一种方法来排除是什么原因造成的?

先谢谢了!

c++ visual-studio compiler-errors visual-studio-2015 openframeworks
2个回答
2
投票

这是一个听起来有点奇怪的错误,因为它基本上是来自内部生成的数据。 然而,你确实可以控制它。 从错误信息的表面价值来看,你可能在命令行中传递了很多定义的符号(或者你有很长的定义),或者你可能有一些很长的文件路径。

如果你在项目属性下查看,C++部分下的一个选择是 "命令行",它将向你展示传递给编译器的具体内容。 当你查看的时候,你可以看到哪里有很多或冗长的参数,然后进行修改以缩短它们。

定义太多? 把它们放在头文件中(可能是stdafx.h),然后用这种方式包含它们。

文件路径太长? 缩短路径,把文件放到别的地方,或者为你真正的目录设置文件系统别名,使用更短的路径。


0
投票

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

我在project.Build.cs的最里面添加了 "bLegacyPublicIncludePaths = false;",并重新编译,没有出现错误。

然后我删除了这一行,再次编译wo错误。

错误信息建议在project.Target.cs中添加 "DefaultBuildSettings=BuildSettingsVersion.V2;",成功了。

© www.soinside.com 2019 - 2024. All rights reserved.