住吉谷です。
Tutorialsの
1.シンプルな配信者と購読者を書く(C++)
1.C++でシンプルなサービスとクライアントを書く
に従いながら進めていたのですが、
どうもrosmakeあるいはmakeをしてもC++の実行可能ファイルがうまく作成されず、困っています。
C++のコンパイルとは別の部分でのエラーも含まれているようでやや面倒になっているかもしれませんが、
どこに問題がありそうか、ご教示いただければ幸いです。
どうぞよろしくお願いします。
<端末におけるmake結果>
junss@junss-Lenovo-G550:~/ros_workspace/beginner_tutorials$ make
mkdir -p bin
cd build && cmake -Wdev -DCMAKE_TOOLCHAIN_FILE=/opt/ros/groovy/share/ros/core/rosbuild/rostoolchain.cmake ..
-- Action Files:DoDishes.action
-- Generating Messages for ActionDoDishes.action
-- Using CATKIN_DEVEL_PREFIX: /home/junss/ros_workspace/beginner_tutorials/build/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/groovy
-- This workspace overlays: /opt/ros/groovy
-- Using Debian Python package layout
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/junss/ros_workspace/beginner_tutorials/build/test_results
-- Found gtest sources under '/usr/src/gtest': gtests will be built
-- catkin 0.5.74
-- /home/junss/ros_workspace/beginner_tutorials/msg/DoDishesAction.msg
[rosbuild] Building package beginner_tutorials
[rosbuild] Including /opt/ros/groovy/share/roslisp/rosbuild/roslisp.cmake
[rosbuild] Including /opt/ros/groovy/share/roscpp/rosbuild/roscpp.cmake
[rosbuild] Including /opt/ros/groovy/share/rospy/rosbuild/rospy.cmake
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
CMAKE_TOOLCHAIN_FILE
-- Build files have been written to: /home/junss/ros_workspace/beginner_tutorials/build
cd build && make
make[1]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' に入ります
make[2]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' に入ります
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' に入ります
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' から出ます
[ 2%] Built target ROSBUILD_genaction_msgs
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' に入ります
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' から出ます
[ 2%] Built target rosbuild_premsgsrvgen
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' に入ります
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' から出ます
[ 7%] Built target ROSBUILD_gensrv_py
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' に入ります
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' から出ます
[ 10%] Built target ROSBUILD_gensrv_lisp
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' に入ります
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' から出ます
[ 12%] Built target ROSBUILD_gensrv_cpp
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' に入ります
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' から出ます
[ 12%] Built target rospack_gensrv
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' に入ります
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' から出ます
[ 40%] Built target ROSBUILD_genmsg_py
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' に入ります
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' から出ます
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' に入ります
[ 42%] Generating ../msg_gen/lisp/DoDishesAction.lisp, ../msg_gen/lisp/_package.lisp, ../msg_gen/lisp/_package_DoDishesAction.lisp
Traceback (most recent call last):
File "/opt/ros/groovy/share/roslisp/rosbuild/scripts/genmsg_lisp.py", line 871, in <module>
generate_msg(sys.argv[1])
File "/opt/ros/groovy/share/roslisp/rosbuild/scripts/genmsg_lisp.py", line 743, in generate_msg
write_md5sum(s, spec)
File "/opt/ros/groovy/share/roslisp/rosbuild/scripts/genmsg_lisp.py", line 596, in write_md5sum
compute_files=False)
File "/opt/ros/groovy/lib/python2.7/dist-packages/roslib/gentools.py", line 318, in get_dependencies
_add_msgs_depends(rospack, spec, deps, package)
File "/opt/ros/groovy/lib/python2.7/dist-packages/roslib/gentools.py", line 115, in _add_msgs_depends
_add_msgs_depends(rospack, depspec, deps, package_context)
File "/opt/ros/groovy/lib/python2.7/dist-packages/roslib/gentools.py", line 115, in _add_msgs_depends
_add_msgs_depends(rospack, depspec, deps, package_context)
File "/opt/ros/groovy/lib/python2.7/dist-packages/roslib/gentools.py", line 108, in _add_msgs_depends
key, depspec = roslib.msgs.load_by_type(t, package_context)
File "/opt/ros/groovy/lib/python2.7/dist-packages/roslib/msgs.py", line 575, in load_by_type
return load_from_file(m_f, pkg)
File "/opt/ros/groovy/lib/python2.7/dist-packages/roslib/msgs.py", line 663, in load_from_file
f = open(file_path, 'r')
IOError: [Errno 2] No such file or directory: '/home/junss/ros_workspace/beginner_tutorials/msg/unit32.msg'
make[3]: *** [../msg_gen/lisp/DoDishesAction.lisp] エラー 1
make[3]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' から出ます
make[2]: *** [CMakeFiles/ROSBUILD_genmsg_lisp.dir/all] エラー 2
make[2]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' から出ます
make[1]: *** [all] エラー 2
make[1]: ディレクトリ `/home/junss/ros_workspace/beginner_tutorials/build' から出ます
make: *** [all] エラー 2
<CMakeLists.txt>
cmake_minimum_required(VERSION 2.4.6)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)
# Set the build type. Options are:
# Coverage : w/ debug symbols, w/o optimization, w/ code-coverage
# Debug : w/ debug symbols, w/o optimization
# Release : w/o debug symbols, w/ optimization
# RelWithDebInfo : w/ debug symbols, w/ optimization
# MinSizeRel : w/o debug symbols, w/ optimization, stripped binaries
#set(ROS_BUILD_TYPE RelWithDebInfo)
rosbuild_find_ros_package(actionlib_msgs)
include(${actionlib_msgs_PACKAGE_PATH}/cmake/actionbuild.cmake)
genaction()
rosbuild_init()
#set the default path for built executables to the "bin" directory
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#set the default path for built libraries to the "lib" directory
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
#uncomment if you have defined messages
rosbuild_genmsg()
#uncomment if you have defined services
rosbuild_gensrv()
#common commands for building c++ executables and libraries
#rosbuild_add_library(${PROJECT_NAME} src/example.cpp)
#target_link_libraries(${PROJECT_NAME} another_library)
#rosbuild_add_boost_directories()
#rosbuild_link_boost(${PROJECT_NAME} thread)
#rosbuild_add_executable(example examples/example.cpp)
#target_link_libraries(example ${PROJECT_NAME})
rosbuild_add_executable(talker src/talker.cpp)
rosbuild_add_executable(listener src/listener.cpp)
rosbuild_add_executable(add_two_ints_client src/add_two_ints_client.cpp)
rosbuild_add_executable(add_two_ints_server src/add_two_ints_server.cpp)