为啥 OpenDDS 无法编译?
Posted
技术标签:
【中文标题】为啥 OpenDDS 无法编译?【英文标题】:Why is OpenDDS failing to compile?为什么 OpenDDS 无法编译? 【发布时间】:2020-08-30 22:41:15 【问题描述】:我的朋友正在尝试从这里编译 OpenDDS: OpenDDS Insall Directions
I have no code.. but i need this to make pastebin work?
她已经按照那个链接指向了一个 T。它产生了这些错误: Errors
以下是 Visual Studio 的完整输出: Output
有趣的部分:
我可以使用顶部链接中的说明编译它。我比她完成了更多的编码,所以安装了一些允许它毫无问题地编译的东西,她有一个干净的 Visual Studio Community 安装,我有 Visual Studio Enterprise(两个 2019) - 我认为版本不重要,但为了更好地理解而分享。
根据我从错误中收集到的信息,在她的机器上定位文件存在问题,而不是我的。为什么找不到文件?我不知道......我真的很困惑为什么它适用于我而不是她。
我什至制作了一台装有 Windows 10 的 VirtualBox 机器,但我也遇到了同样的错误。
非常感谢任何和所有帮助,谢谢!
【问题讨论】:
此处的所有问题都应在问题本身中以纯文本形式包含所有相关信息。链接可以随时停止工作,使问题变得毫无意义。无法复制/粘贴以图像形式显示的代码、数据或错误;或编辑或编译以供进一步研究和调查。请edit这个问题,删除并替换所有链接和图像,并将所有相关信息作为纯文本。所有代码必须满足minimal reproducible example 的所有要求。您可以在此处找到许多其他以纯文本形式解释所有内容的问题,请以它们为例说明您的问题应该是什么样子。 你想要完整的错误日志,我会给你完整的错误日志.. 你们两个运行的是完全相同版本的VS 2019吗?标准库的部分内容在最近的版本中进行了重构,这看起来像是<string>
被其他一些标头隐式假定为 #include
的情况,但现在不再是。
@Seth 这可能是问题所在,例如,请参阅 @ 中“Header Inclusion Restructuring”下的“one downside...”注释987654326@。这是为原始 v16.0 版本编写的,但此后出现了更多此类重大更改。
您也可以在需要的地方尝试破解 OpenDDS 标头和#include <string>
,但这可能不是唯一损坏的依赖项。和/或向 OpenDDS 报告构建错误并希望得到解决。
【参考方案1】:
此 PR 已修复:https://github.com/objectcomputing/OpenDDS/pull/1701,但尚未发布。我无法在上面的评论链中发表评论,但 dxiv 是正确的,这是由 VS2019 中的包含依赖项引起的。它只在 dds/DCPS/Serializer.h 头文件中,所以只要让你的朋友将该文件更改为 PR 中的样子,就可以构建它。
【讨论】:
啊啊啊啊。这是愚蠢的,需要更容易找到。她花了大约 4 天的时间来解决这个问题。 xD 看的时候还以为visual studio用了vsRedist之类的“插件”,studio的核心出了问题。非常感谢! 另外,VS 2017 也有效。但这有助于 2019 年的 16.7 版本。非常感谢@FredHomsey以上是关于为啥 OpenDDS 无法编译?的主要内容,如果未能解决你的问题,请参考以下文章
OpenDDS 中的哪个库包含“OpenDDS::DCPS::operator<<”?