このメソッド シグネチャの場所が見つからないため、共有ライブラリを 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 を使用し、"operator" または "<<" を grep しても結果は得られません。名前マングリングは、オーバーロードされた演算子にとって少し奇妙である可能性がありますか? $DDS_ROOT/lib 内のすべてのライブラリ ファイルでこれを実行しましたが、何も見つかりませんでした。
また、IDL を再コンパイルして、short や long などのデータ型を持つ構造体のメンバー フィールドを削除すると、エラーは発生せず、すべて正常にリンクされます。
このメソッド シグネチャがどのライブラリにあるか知っている人はいますか?