编译没有ros的roscpp(使用g ++)

时间:2015-02-23 08:12:33

标签: c++ ros

我正在尝试编译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,但它不起作用。

2 个答案:

答案 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处于同一级别)