Closed eisoku9618 closed 8 years ago
自動生成されるファイル(StabilizerService.hh)のincludeの囲み文字が勝手に変更されてしまうのが原因のようです.
自動生成される~/ros/hydro/devel/include/hrpsys_ros_bridge/idl/StabilizerService.hh
に書かれている#include <AutoBalancerService.hh>
がダメで,直接ファイルを編集して#include "AutoBalancerService.hh"
にしてカレントディレクトリを見るようにしたら通りました.
hrpsys-baseのbuildで作られるStabilizerService.hh
では#include "AutoBalancerService.hh"
になっているのに対し,
hrpsys_ros_bridgeのbuildで作られるStabilizerService.hh
では#include <AutoBalancerService.hh>
になっています.
XXXservice.hhは
https://github.com/start-jsk/rtmros_common/blob/master/hrpsys_ros_bridge/catkin.cmake#L91
で呼んでいるrtmbuild_genidl
の中で作られていて,具体的には以下のコマンド
`pkg-config openrtm-aist --variable=rtm_idlc` `pkg-config openrtm-aist --variable=rtm_idlflags` -C/tmp/ `rospack find hrpsys_ros_bridge`/idl/StabilizerService.idl
pkg-config openrtm-aist --variable=rtm_idlc | pkg-config openrtm-aist --variable=rtm_idlflags |
---|---|
/usr/bin/omniidl | -bcxx -Wba -nf -I/home/eisoku/ros/hydro_parent/devel/include/openrtm-1.1/rtm/idl |
omniidlに以下のオプションが使えそう
-Wbuse_quotes Use quotes in #include directives (e.g. "foo" rather than <foo>).
idlをincludeするのが同じクラスを使いたいみたいな理由でしたら, それぞれのidlに同じ定義を書いておくのでいいと思います (と@snozawa さんがオフラインでコメントしていました.)
https://github.com/tork-a/openrtm_aist-release/pull/4 で解決しました.
-Wbuse_quotes
を使うように書いている
pkg-config openrtm-aist --variable=rtm_idlflags
を使うように書いてあるとなっていましたので,openrtm-aist.pcに-Wbuse_quotes
を付け加えました.
https://github.com/eisoku9618/hrpsys-base/commit/448e0effe0bf30271b5b22d93ed0fe596ef8b6fb のように、 hrpsys-baseのStabilizerService.idlの中でAutoBalancerService.idlをincludeした場合に、 hrpsys-baseのbuildは通るのですが、hrpsys_ros_bridgeのbuildがうまく行かないようです。
以下のエラーが出ます。