ROS: Can't find package configuration files

19,486

Solution 1

If anybody came up here as I did looking for a simple solution, this does the trick:

sudo apt-get install ros-<distro>-roscpp

Replace with your ROS distribution, such as:

sudo apt-get install ros-melodic-roscpp

Solution 2

 Could not find a package configuration file provided by "roscpp" with
 any of the following names:

         roscppConfig.cmake
         roscpp-config.cmake

This happens if ROS is a dependency and it is not installed. Install it from here: http://wiki.ros.org/ROS/Installation and repeat.

Share:
19,486
BAMercury
Author by

BAMercury

Updated on June 04, 2022

Comments

  • BAMercury
    BAMercury almost 2 years

    EDIT: Okay so I decided to try something random, I have rospy also dictated as a required component. I removed all of the OpenCV stuff from my cmakelists file, and now it just spit out the same error regarding rospy..and same deal with std_msgs. I first started out with ROS on this computer I am using with the ROS tutorials, and everything worked just fine up until this point..

    I know a lot of people are having trouble with this, running catkin_make/cmake and seeing that it isn't finding your OpenCV files:

    Could not find a package configuration file provided by "OpenCV" with any
      of the following names:
    
        OpenCVConfig.cmake
        opencv-config.cmake
    

    Also this error when I tried just using roscpp, rospy, etc.:

      Could not find a package configuration file provided by "roscpp" with any
      of the following names:
    
    roscppConfig.cmake
    roscpp-config.cmake
    

    Here's what I tried so far: exporting OpenCV_DIR, CMAKE_PREFIX_PATH, etc. etc. Most of the stuff people have suggested here on stack. Still comes up with this error. Checking to make sure I have OpenCV correctly installed, using IDMTEST, I find everything is. I can use opencv perfectly fine with python, etc.

    As well as Tsyvarev's solutions from the comments: If it is simple find_package(OpenCV), then any should help: 1. cmake -DOpenCV_DIR=/usr/share/OpenCV .... 2. cmake -DCMAKE_PREFIX_PATH=/usr. 3. export CMAKE_PREFIX_PATH=/usr.

    I have these .cmake files located in: /usr/share/OpenCV and /usr/local/share/OpenCV

    Not sure if they could be located anywhere else, tried doing a mass search and it seems to just be pointing to these two specific folders

    Went through my CMakeLists.txt file and added the directories, target libraries, etc. as dictated by the .cmake file

    I'm really not sure what to do at this point.

    Some code/files:

        cmake_minimum_required(VERSION 2.8.3)
    project(briancv)
    
    ## Find catkin macros and libraries
    ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
    ## is used, also find other catkin packages
    find_package(catkin REQUIRED COMPONENTS
       roscpp
       rospy
       std_msgs
      message_generation
    )
    
    ## System dependencies are found with CMake's conventions
    # find_package(Boost REQUIRED COMPONENTS system)
    
    
    ## Uncomment this if the package has a setup.py. This macro ensures
    ## modules and global scripts declared therein get installed
    ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
    # catkin_python_setup()
    
    ################################################
    ## Declare ROS messages, services and actions ##
    ################################################
    
    ## To declare and build messages, services or actions from within this
    ## package, follow these steps:
    ## * Let MSG_DEP_SET be the set of packages whose message types you use in
    ##   your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
    ## * In the file package.xml:
    ##   * add a build_depend tag for "message_generation"
    ##   * add a build_depend and a run_depend tag for each package in MSG_DEP_SET
    ##   * If MSG_DEP_SET isn't empty the following dependency has been pulled in
    ##     but can be declared for certainty nonetheless:
    ##     * add a run_depend tag for "message_runtime"
    ## * In this file (CMakeLists.txt):
    ##   * add "message_generation" and every package in MSG_DEP_SET to
    ##     find_package(catkin REQUIRED COMPONENTS ...)
    ##   * add "message_runtime" and every package in MSG_DEP_SET to
    ##     catkin_package(CATKIN_DEPENDS ...)
    ##   * uncomment the add_*_files sections below as needed
    ##     and list every .msg/.srv/.action file to be processed
    ##   * uncomment the generate_messages entry below
    ##   * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
    
    ## Generate messages in the 'msg' folder
     add_message_files(
       FILES
       Num.msg
    
     )
    
    ## Generate services in the 'srv' folder
     add_service_files(
       FILES
       AddTwoInts.srv
     )
    
    ## Generate actions in the 'action' folder
    # add_action_files(
    #   FILES
    #   Action1.action
    #   Action2.action
    # )
    
    ## Generate added messages and services with any dependencies listed here
     generate_messages(
       DEPENDENCIES
       std_msgs  # Or other packages containing msgs
     )
    
    ################################################
    ## Declare ROS dynamic reconfigure parameters ##
    ################################################
    
    ## To declare and build dynamic reconfigure parameters within this
    ## package, follow these steps:
    ## * In the file package.xml:
    ##   * add a build_depend and a run_depend tag for "dynamic_reconfigure"
    ## * In this file (CMakeLists.txt):
    ##   * add "dynamic_reconfigure" to
    ##     find_package(catkin REQUIRED COMPONENTS ...)
    ##   * uncomment the "generate_dynamic_reconfigure_options" section below
    ##     and list every .cfg file to be processed
    
    ## Generate dynamic reconfigure parameters in the 'cfg' folder
    # generate_dynamic_reconfigure_options(
    #   cfg/DynReconf1.cfg
    #   cfg/DynReconf2.cfg
    # )
    
    ###################################
    ## catkin specific configuration ##
    ###################################
    ## The catkin_package macro generates cmake config files for your package
    ## Declare things to be passed to dependent projects
    ## INCLUDE_DIRS: uncomment this if you package contains header files
    ## LIBRARIES: libraries you create in this project that dependent projects also need
    ## CATKIN_DEPENDS: catkin_packages dependent projects also need
    ## DEPENDS: system dependencies of this project that dependent projects also need
    catkin_package(
        ...
        CATKIN_DEPENDS message_runtime ...
        ...)
    #  INCLUDE_DIRS include
    #  LIBRARIES beginner_tutorials
    #  CATKIN_DEPENDS roscpp rospy
    #  DEPENDS system_lib
    
    
    ###########
    ## Build ##
    ###########
    
    ## Specify additional locations of header files
    ## Your package locations should be listed before other locations
    # include_directories(include)
    include_directories(
      ${catkin_INCLUDE_DIRS}
    )
    
    ## Declare a C++ library
    # add_library(beginner_tutorials
    #   src/${PROJECT_NAME}/beginner_tutorials.cpp
    # )
    
    ## Add cmake target dependencies of the library
    ## as an example, code may need to be generated before libraries
    ## either from message generation or dynamic reconfigure
    # add_dependencies(beginner_tutorials ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
    
    ## Declare a C++ executable
    # add_executable(beginner_tutorials_node src/beginner_tutorials_node.cpp)
    
    ## Add cmake target dependencies of the executable
    ## same as for the library above
    # add_dependencies(beginner_tutorials_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
    
    ## Specify libraries to link a library or executable target against
    # target_link_libraries(beginner_tutorials_node
    #   ${catkin_LIBRARIES}
    # )
    
    #############
    ## Install ##
    #############
    
    # all install targets should use catkin DESTINATION variables
    # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
    
    ## Mark executable scripts (Python etc.) for installation
    ## in contrast to setup.py, you can choose the destination
    # install(PROGRAMS
    #   scripts/my_python_script
    #   DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
    # )
    
    ## Mark executables and/or libraries for installation
    # install(TARGETS beginner_tutorials beginner_tutorials_node
    #   ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
    #   LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
    #   RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
    # )
    
    ## Mark cpp header files for installation
    # install(DIRECTORY include/${PROJECT_NAME}/
    #   DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
    #   FILES_MATCHING PATTERN "*.h"
    #   PATTERN ".svn" EXCLUDE
    # )
    
    ## Mark other files for installation (e.g. launch and bag files, etc.)
    # install(FILES
    #   # myfile1
    #   # myfile2
    #   DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
    # )
    
    #############
    ## Testing ##
    #############
    
    ## Add gtest based cpp test target and link libraries
    # catkin_add_gtest(${PROJECT_NAME}-test test/test_beginner_tutorials.cpp)
    # if(TARGET ${PROJECT_NAME}-test)
    #   target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
    # endif()
    
    ## Add folders to be run by python nosetests
    # catkin_add_nosetests(test)
    

    Also when I tried options 1-3 given by Tsyvarev:

    -- Using CATKIN_DEVEL_PREFIX: /home/camera/catkin_ws/src/briancv/devel
    -- Using CMAKE_PREFIX_PATH: /usr
    -- Using PYTHON_EXECUTABLE: /usr/bin/python
    -- Using Debian Python package layout
    -- Using empy: /usr/bin/empy
    -- Using CATKIN_ENABLE_TESTING: ON
    -- Call enable_testing()
    -- Using CATKIN_TEST_RESULTS_DIR: /home/camera/catkin_ws/src/briancv/test_results
    -- Found gtest sources under '/usr/src/gtest': gtests will be built
    -- Using Python nosetests: /usr/bin/nosetests-2.7
    -- catkin 0.6.18
    CMake Warning at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake:76 (find_package):
      Could not find a package configuration file provided by "roscpp" with any
      of the following names:
    
        roscppConfig.cmake
        roscpp-config.cmake
    
      Add the installation prefix of "roscpp" to CMAKE_PREFIX_PATH or set
      "roscpp_DIR" to a directory containing one of the above files.  If "roscpp"
      provides a separate development package or SDK, be sure it has been
      installed.
    Call Stack (most recent call first):
      CMakeLists.txt:7 (find_package)
    
    
    -- Could not find the required component 'roscpp'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found.
    CMake Error at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
      Could not find a package configuration file provided by "roscpp" with any
      of the following names:
    
        roscppConfig.cmake
        roscpp-config.cmake
    
      Add the installation prefix of "roscpp" to CMAKE_PREFIX_PATH or set
      "roscpp_DIR" to a directory containing one of the above files.  If "roscpp"
      provides a separate development package or SDK, be sure it has been
      installed.
    Call Stack (most recent call first):
      CMakeLists.txt:7 (find_package)
    
    
    -- Configuring incomplete, errors occurred!
    See also "/home/camera/catkin_ws/src/briancv/CMakeFiles/CMakeOutput.log".
    See also "/home/camera/catkin_ws/src/briancv/CMakeFiles/CMakeError.log".