【发布时间】:2016-11-17 02:39:58
【问题描述】:
我在将我的共享库与 OpenDDS (v3.9) 静态库链接时遇到问题,因为我无法找到此方法签名的位置。
这是错误。
[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 查找“operator”或“
如果我重新编译 IDL 并删除具有 short 或 long 等数据类型的结构的成员字段,则不会出现错误,并且一切都可以正常链接。
有人知道这个方法签名可能位于哪个库吗?
【问题讨论】:
标签: data-distribution-service opendds