Hello,
Yocto Scarthgapバージョンのbitbakeを始めました。私は自分のディストリビューションにmeta-openddsレイヤーを追加しました。
OpenDDSからレイヤーをクローンし、レイヤーをbblayers.confファイルに追加しました。
私は "IMAGE_INSTALL:append = "opendds" として local.conf ファイルに OpenDDS を追加しました
しかし、bitbakeを起動すると、 opendds-3.29.1-r0 do_package stepで次のエラーが発生します。
このエラーの後、yocto イメージは作成されますが、opendds の subscriber または publisher example アプリケーションはどれも rootfs に追加されません。
エラーログ:
エラー:opendds-3.29.1-r0 do_package:opendds-dev:libTAO_Valuetype.so.2.5.21の複数のshlibプロバイダー:opendds-dev、opendds(ファイルで使用:\/home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/DCPS/FindTopic/findtopic)
エラー:opendds-3.29.1-r0 do_package:opendds-dev:libOpenDDS_Dcps.so.3.29.1の複数のshlibプロバイダー:opendds、opendds-dev(ファイルで使用:\/home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/DCPS/FooType/libDcpsFooType.so.3.29.1)
エラー:opendds-3.29.1-r0 do_package:opendds-dev:libTAO_Valuetype.so.2.5.21の複数のshlibプロバイダー:opendds-dev、opendds(ファイルで使用:/home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/security/IDL_Serialization/Security_IDL_Serialization)
エラー:opendds-3.29.1-r0 do_package:opendds-dev:libACE.so.6.5.21の複数のshlibプロバイダー:opendds、opendds-dev(ファイルで使用:/home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/ACE_wrappers/TAO/tao/PI/libTAO_PI.so.2.5.21)
エラー:opendds-3.29.1-r0 do_package:opendds-dev:libOpenDDS_Rtps.so.3.29.1の複数のshlibプロバイダー:opendds、opendds-dev(ファイルで使用:\/home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/DCPS/RtpsDurableReplay/publisher)
エラー:opendds-3.29.1-r0 do_package:opendds-dev:libTAO_PortableServer.so.2.5.21の複数のshlibプロバイダー:opendds、opendds-dev(ファイルで使用:/home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/ACE_wrappers/TAO/orbsvcs/ImplRepo_Service/tao_imr)
エラー:opendds-3.29.1-r0 do_package:opendds-dev:libOpenDDS_Dcps.so.3.29.1の複数のshlibプロバイダー:opendds、opendds-dev(ファイルで使用:/home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/DCPS/Reliability/IDL/libReliability.so.3.29.1)
エラー:opendds-3.29.1-r0 do_package:opendds-dev:libOpenDDS_Dcps.so.3.29.1の複数のshlibプロバイダー:opendds、opendds-dev(ファイルで使用:/home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/DCPS/Prst_delayed_subscriber/publisher)
エラー:opendds-3.29.1-r0 do_package:opendds-dev:libOpenDDS_Dcps.so.3.29.1の複数のshlibプロバイダー:opendds、opendds-dev(ファイルで使用:/home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/security/ConcurrentAuthLimit/ConcurrentAuthLimit)
エラー:opendds-3.29.1-r0 do_package:opendds-dev:libACE.so.6.5.21の複数のshlibプロバイダー:opendds、opendds-dev(ファイルで使用:/home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/DCPS/KeyTest/IsBounded)
エラー:opendds-3.29.1-r0 do_package:opendds-dev:libTAO.so.2.5.21の複数のshlibプロバイダー:opendds、opendds-dev(ファイルで使用:/home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/FACE/CallbackAndReceive/Publisher/publisher)
エラー:opendds-3.29.1-r0 do_package:opendds-dev:libACE.so.6.5.21の複数のshlibプロバイダー:opendds、opendds-dev(ファイルで使用:\/home/yocto/yocto-nxp/build-nxp/tmp/work/armv8a-poky-linux/opendds/3.29.1/packages-split/opendds-dev/usr/share/DDS_ROOT/tests/DCPS/LivelinessTimeout/publisher)
これらのエラーを助けていただけませんか?
よろしくお願いいたします。
Hi @pengyong_zhang,
応援いただき、誠にありがとうございました。
以下のリンクのGitHubの問題のおかげで、KirkstoneのOpenDDS 3.24 do_packageの問題を解決しました。
Link: https://github.com/OpenDDS/meta-opendds/issues/47
よろしくお願いいたします。
HI @cebel
これは、opendds-dev パッケージに複数の共有ライブラリ (shlib) プロバイダがあり、ファイルの競合を引き起こす可能性があるためです。具体的な問題は、複数のライブラリファイル(libACE.so、libOpenDDS_Dcps.so、など)複数のパッケージによって提供される場合があり、ビルド中に競合が発生します。
解決策の提案を次に示します。
1. OpenDDS パッケージの依存関係をチェックして、重複する依存関係ライブラリ ファイルがないことを確認します。
2. Yocto の設定をチェックして、すべてのライブラリ ファイルが正しくリンクされていることを確認します。
3. Yoctoの依存関係管理ツールを使用して、ライブラリファイルの競合を解決します。
B.R