【问题标题】:What's the cause of a D8049 error in visual studio?Visual Studio 中出现 D8049 错误的原因是什么?
【发布时间】:2023-04-07 21:22:01
【问题描述】:

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

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

提前致谢!

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • 谢谢;查看命令行参数帮助我理清了不应该添加的内容!包含太多不相关的文件作为附加包含目录。
      猜你喜欢
      • 2011-02-11
      • 1970-01-01
      • 2020-12-10
      • 2017-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多