start-jsk/rtmros_gazebo

pkg_check_module returns invalid pass for including gazebo header file

mmurooka opened this issue · 1 comments

I got the following error.

$ catkin_make --only-pkg-with-deps hrpsys_gazebo_general --force-cmake
...
 /home/murooka/ros/hydro/src/rtm-ros-robotics/rtmros_gazebo/hrpsys_gazebo_general/src/GetVelPlugin.cpp:5:28: 致命的エラー: gazebo/gazebo.hh: そのようなファイルやディレクトリはありません
...

I added message("${GAZEBO_INCLUDE_DIRS}") to catkin.cmake, and found that ${GAZEBO_INCLUDE_DIRS} became /usr/include/gazebo-3.0;/usr/include/sdformat-2.0.

以下のように,/usr/include/gazebo-3.0 は存在しなくて/usr/include/gazebo-3.1 があります.
コマンドラインでpkg-configでgazeboのcflagsを見ると,正しくgazebo-3.1のパスが返ってくるのですが,
catkin.cmakeの中のpkg_check_modulesでは正しくないgazebo-3.0のパスが返って来てしまいます.
https://github.com/start-jsk/rtmros_gazebo/blob/master/hrpsys_gazebo_general/catkin.cmake#L33

murooka@murooka-ThinkPad-T430:~/ros/hydro$ ls /usr/include/gazebo-3.0
ls: /usr/include/gazebo-3.0 にアクセスできません: そのようなファイルやディレクトリはありません
murooka@murooka-ThinkPad-T430:~/ros/hydro$ ls /usr/include/gazebo-3.1
gazebo
murooka@murooka-ThinkPad-T430:~/ros/hydro$ pkg-config --cflags gazebo
-I/usr/include/gazebo-3.1 -I/usr/include/sdformat-2.0  

解決方法ご存知でしたらご教示ください.

自己解決しました.

build/CMakeCache.txtに

GAZEBO_CFLAGS:INTERNAL=-I/usr/include/gazebo-3.0;-I/usr/include/sdformat-2.0

という行が残っていることが原因でした.
devel,buildを消してcatkin_makeしなおしたら,
CMakeCache.txtのgazebo-3.0がgazdebo-3.1に変わってエラーが出なくなりました.

catkin_make --force-cmakeでもCMakeCache.txtはそのままで残っているものなのでしょうか.