2015-02-23 322 views
1

我正在尝试编译roscpp而不使用其余的ROS(我只需要订阅一个节点,但是那个拥有使用旧版ROS的节点并且我不能我的计划与他由于编译烦恼)集成。我下载了混帐(https://github.com/ros/ros_comm)的源代码,现在我需要编译它,但CMake的扔我的错误:编译没有ros的roscpp(使用g ++)

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

我建议你用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)

1

使用此命令行直接用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代码。

如果您正在使用不同的靛蓝色版本替换您的版本的字符串的靛蓝字符串。

+1

你忘了非常有用的'-Wall -Wextra -g'选项'G ++' – 2017-07-07 04:13:27