[openrtm-staff:619] RTC作成時のrtmCamera、rtmManipulatorリンクの件

河内のぶ n.kawauchi @ aist.go.jp
2017年 1月 11日 (水) 14:52:24 JST


安藤様

河内です

ミーティングで報告した下記の件が確認できましたのでお知らせします。
「C++のRTC作成時、rtmCamera、rtmManipulatorのライブラリを必ずリンク
 するように変更したOpenRTMConfig.cmakeを使った場合のリンク状況確認」

宮本くんが調べてくれました。Dependency WalkerでrtmManipulatorのdllが
リンクされていなかった原因は、idl\CMakeLists.txt の定義によるものでし
た。RTCBuilderが生成したこのCMakeLists.txtを修正すれば、リンクされる
動作を確認できました。

私の環境「AffineにrtmManipulatorのサービスポート(コンシューマ)を追加」
の場合で説明します。

Affineコンポーネントにサービスポートを追加すると、下記が追加されます。
----------
Affine
├─idl
│      BasicDataType.idl
│      CMakeLists.txt
│      ManipulatorCommonInterface_Common.idl
│      ManipulatorCommonInterface_DataTypes.idl
│      ManipulatorCommonInterface_Middle.idl
----------

上記のCMakeLists.txtの1行目は以下となっています。この定義があると
インストーラが配布しているrtmManipulatorのdllは使われません。
----------
set(idls 
  ${CMAKE_CURRENT_SOURCE_DIR}/ManipulatorCommonInterface_Common.idl 
  ${CMAKE_CURRENT_SOURCE_DIR}/ManipulatorCommonInterface_DataTypes.idl 
  ${CMAKE_CURRENT_SOURCE_DIR}/BasicDataType.idl )
----------

上記のset文をコメントアウトしてビルドしたところ、rtmManipulatorのdllが
リンクされることを確認できました。
添付ファイル参照:Affine+servicePort+idl-CMakeLists変更+depends結果.png

この結果を見ると、rtmCameraはリンクされておりません。

これらの結果から、OpenRTMConfig.cmakeでrtmCameraとrtmManipulatorを
ライブラリに加えても問題ないと思えます。
idl\CMakeLists.txt の定義の件はまた別問題ですが。。。

以上、よろしくお願いいたします。

---------------------------------------------------
河内 のぶ  n.kawauchi @ aist.go.jp
産業技術総合研究所 ロボットイノベーション研究センター
ロボットソフトウエアプラットフォーム研究チーム
テクニカルスタッフ
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: Affine+servicePort+idl-CMakeLists変更+depends結果.png
型:         image/png
サイズ:     6365 バイト
説明:       無し
URL:        <http://www.openrtm.org/pipermail/openrtm-staff/attachments/20170111/f508dc76/attachment.png>


More information about the openrtm-staff mailing list