我正在使用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
但我仍然不确定是什么导致了这个问题。是否有人熟悉此错误,并可以推荐一种方法来排除导致它的原因?
提前感谢!
答案 0 :(得分:3)
对我来说,使用UE4是一个间歇性错误。
我添加了“ bLegacyPublicIncludePaths = false;”到project.Build.cs的最里面的块,并重新编译而没有错误。
然后我删除了该行并再次编译,没有错误。
错误消息建议添加“ DefaultBuildSettings = BuildSettingsVersion.V2;”。到起作用的project.Target.cs。
答案 1 :(得分:1)
这是一个奇怪的声音错误,因为它来自基本上内部生成的数据。但是,你确实可以控制它。在面值处获取错误消息时,您可能在命令行中传递了许多/许多已定义的符号(或者您具有的长定义符号),或者您可能有一些冗长的文件路径。
如果查看项目属性,C ++部分下的一个选项是"命令行",它将准确显示传递给编译器的内容。当您查看可以看到有多个或冗长参数的位置时,然后进行更改以缩短它们。
定义太多了?将它们放在标题中(可能是stdafx.h)并以这种方式包含它们。
长文件路径?缩短路径,将文件放在其他位置,或者将文件系统别名设置为使用较短路径的真实目录。