首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenDDS中的哪个库包含"OpenDDS::DCPS::operator<<"?

OpenDDS中的哪个库包含"OpenDDS::DCPS::operator<<"?
EN

Stack Overflow用户
提问于 2016-11-17 02:39:58
回答 1查看 500关注 0票数 0

我在将共享库与OpenDDS (v3.9)静态库连接时遇到了问题,因为我找不到这个方法签名的位置。

这是错误。

代码语言:javascript
复制
[exec] libs/mylib/ABTypeSupportImpl.cpp:74: error: undefined reference to 'OpenDDS::DCPS::operator<<(OpenDDS::DCPS::Serializer&, short)'
[exec] collect2: error: ld returned 1 exit status
[exec] make: *** [/tmp/mybuild/lib_ab/obj/local/armeabi-v7a/lib_ab.so] Error 1

ABTypeSupportImpl.cpp是由编译IDL自动生成的。接下来会出现更多相同的错误。由于名称空间(OpenDDS::DCPS),我认为这可以在库libOpenDDS_Dcps.a中找到,但是在这个库中使用nm,然后grep‘’ing用于"operator“或"<<",就不会产生任何结果。对于超载的运营商来说,mangling这个名字是不是有点陌生呢?我在$DDS_ROOT/lib中的每个库文件上都运行了这个程序,但一无所获。

如果我重新编译IDL并删除带有数据类型(例如短或长)的structs的成员字段,那么就没有错误,所有的链接都很好。

有人知道这个方法签名可能位于哪个库吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-17 10:41:14

这些操作符在‘dds/DCPS/seerializer.h’中声明,但在Serializer.inl中内联实现。您可能会在启用内联(默认)的情况下编译OpenDDS,但在编译应用程序时,会禁用内联。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40645826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档