我正在尝试编译roscpp而不使用其余的ROS(我只需要订阅一个节点,但是拥有该节点的节点使用旧版本的ROS而我无法将我的程序与他的集成归因于编译麻烦)。我从git(https://github.com/ros/ros_comm)下载了源代码,现在我需要编译它,但是Cmake会给我带来错误:
INFOBuilding GTest from source.
TODO: implement add_roslaunch_check() in rostest-extras.cmake.
CMake Error at CMakeLists.txt:8 (catkin_package_xml):
Unknown CMake command "catkin_package_xml".
我该如何建造它?我正在调用cmake CMakeList.txt,但它不起作用。
答案 0 :(得分:4)
使用此命令行直接使用g ++编译代码:
g++ yourtest.cpp -o yourtest -I/opt/ros/indigo/include -L/opt/ros/indigo/lib \
-Wl,-rpath,/opt/ros/indigo/lib -lroscpp -lrosconsole -lrostime \
-lroscpp_serialization -lboost_system -lboost_thread -pthread -lactionlib
yourtest.cpp是你的c ++文件,里面有一些ros代码。
如果您使用的是不同版本的靛蓝版本,请使用您的版本字符串替换de indigo字符串。
答案 1 :(得分:2)
我建议你使用rosinstall_generator来编译你想要的包,比如roscpp。以下是步骤:
下载软件包及其依赖项:
rosinstall_generator roscpp --rosdistro <ROS_Distro that you use> --deps > roscpp_ros.rosinstall
wstool init src roscpp_ros.rosinstall -j8
rosdep install --from-path src -i -y
然后编译它:
src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
已编译的软件包将位于install_isolated文件夹中(与文件夹src处于同一级别)