在ROS的同一文件夹中编译多个软件包

时间:2018-12-13 00:30:52

标签: cmake command-line-interface ubuntu-16.04 ros catkin

我有4个独立的软件包:

  1. https://github.com/catkin/catkin_simple
  2. https://github.com/ethz-asl/glog_catkin
  3. https://github.com/ethz-asl/asctec_mav_framework
  4. https://github.com/ethz-asl/ethzasl_msf

我将它们保存在主文件夹中,并尝试使用catkin_make进行编译,并收到以下cmake错误: 在devel / share / glog_catkin / cmake / glog_catkinConfig.cmake:148(消息)处的CMake错误:

  Project 'msf_core' tried to find library 'glog'.  The library is neither a
  target nor built/installed properly.  Did you compile project
  'glog_catkin'? Did you find_package() it before the subdirectory containing
  its code is included?
Call Stack (most recent call first):
  /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:76 (find_package)
  ethzasl_msf/msf_core/CMakeLists.txt:17 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/yukti/Desktop/MSF_PACKAGE/build/CMakeFiles/CMakeOutput.log".
See also "/home/yukti/Desktop/MSF_PACKAGE/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed

因此,我尝试将其单独编译。编译其中一个并尝试编译其他文件后,出现以下错误:

CMake Error: The source "/home/yukti/Desktop/MSF_PACKAGE/asctec_mav_framework-master/CMakeLists.txt" does not match the source "/home/yukti/Desktop/MSF_PACKAGE/catkin_simple-master/CMakeLists.txt" used to generate cache.  Re-run cmake with a different source directory.
Invoking "cmake" failed

我尝试的另一件事是创建多个文件夹,分别存储每个软件包并进行编译。我仍然无法使其正常工作。

我在确定是否需要创建多个catkin工作区或尝试覆盖它们,或者是否有更简单的解决方案的问题上遇到困难。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在工作空间中放置多个包是可能的,这是ROS中的基本方法。

错误

  

项目“ msf_core”试图找到库“ glog”。

告诉我们需要编译glog库,但是缺少它。检出How to install and use GLog并安装类似glog的

sudo apt install libgoogle-glog-dev

在安装库之后,应该可以进行编译。