Opensplice 无法构建 dcpsisocpp2

Posted

技术标签:

【中文标题】Opensplice 无法构建 dcpsisocpp2【英文标题】:Opensplice failed to build dcpsisocpp2 【发布时间】:2019-03-11 12:49:42 【问题描述】:

我从 https://github.com/ADLINK-IST/opensplice 下载了最新的 Opensplice DDS 源代码,并尝试在我的 Cygwin 64 位中按照它的说明(source setenvsource ./configure,然后是 make ..)构建它。

构建(make 命令)似乎已完成,但是诸如 dcpsisocpp2durabilityspliced 等一些模块没有构建(我找不到 dcpsisocpp2.dll 等) )。

不知道有没有熟悉Opensplice的makefile系统的人可以指导我解决这个问题。

【问题讨论】:

除非您更详细地描述问题,否则我们无法帮助您解决问题:您到底在做什么以及遇到了什么错误。 我的问题的更多细节:我在github.com/ADLINK-IST/opensplice下载了Opensplice DDS的最新源代码,尝试按照它的说明构建它(源setenv,源./configure,make..)在我的 cygwin 64 位中,构建(make 命令)似乎已经完成,但是 dcpsisocpp2、durability、spliced 等一些模块没有构建(找不到 dcpsisocpp2.dll 等),我想知道是否有人熟悉Opensplice的makefile系统的可以指导我解决问题 该描述应该在问题帖子中,而不是在cmets中。 在我修改后这个问题是否仍然保留? 改变问题的状态不是一个自动过程。就像搁置问题一样,提出问题也需要对 SO 成员进行投票。编辑后的问题越好,重新打开的速度就越快(应该有 5 个人认为该问题适合 Stack Overflow)。我已经编辑了您的问题(没有任何格式的单段不容易阅读)。让我们看看其他人是否认为您的问题很清楚... 【参考方案1】:

您应该确定您将使用社区版或企业版。 看来社区版没有spliceddurability 服务。此外,dcpsisocpp2 使用 C++03,这是一个非常古老的 C++ 标准,当您使用 C++11 或 C++14 编写应用程序时,您可能会收到一些警告或错误,并花费大量时间修复编译问题。

尝试使用遵循 C++11 标准的dcpssacpp

【讨论】:

感谢YuSheng,社区版。我不得不 cd 进入 spliced、durability 和 dcpsisocpp2 并键入“make”来单独构建每个模块,似乎使用相应的 dll 创建,直到使用 dcpsisocpp2 编写 DDS 订阅者时,我遇到了以下错误“程序入口点 ?setCopyIn@AnyDataReaderDelegate@sub@opensplice@org@@QEAAXP6AEPEAUc_base_s@PEBXPEAX@Z@Z 不能位于 dll '使用/依赖于 dcpsisocpp2.dll 的 dll',当我使用 Dependency Walker 检查时,dcpsisocpp2。 dll没有那个符号 继续我之前的评论,而不是符号'?setCopyIn@AnyDataReaderDelegate@sub@opensplice@org@@QEAAXP6AEPEAUc_base_s@PEBXPEAX@Z@Z',构建的 dcpsisocpp2.dll 有符号'? setCopyIn@AnyDataReaderDelegate@sub@opensplice@org@@QEAAXP6AEPEAUc_type_s@PEBXPEAX@Z@Z',可以看到两个符号只有 4 个字符不同,一个是 ....base...,另一个是 ...type... . 有谁知道我在构建 dcpsisocpp2 时出了什么问题?也许我应该按照 YuSheng 的建议使用 dcpssacpp ?但是后来我在源代码中找不到dcpssapp模块,是不是YuSheng的意思是dcpsisocpp而不是dcpsisocpp2?

以上是关于Opensplice 无法构建 dcpsisocpp2的主要内容,如果未能解决你的问题,请参考以下文章

为 OpenSplice 模板创建容器?

如何使用 VS2012 编译 OpenSplice 5.5.1 社区版

带有 Qt5 执行错误的 OpenSplice 创建失败:句柄无效

OpenSplice DDS:发布,直到超时

如何在 Yocto 配方中获取 Bash 脚本

对 org::opensplice::core::DWDeleter::DWDeleter 的未定义引用