鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    找不到roscpp

    已定时 已固定 已锁定 已移动 未解决
    综合问题
    找不到roscpp 编译问题 catkinmake
    2
    2
    364
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 10189051621
      红鲤鱼与绿鲤鱼与驴
      最后由 编辑

      已经安装roscpp但编译后出现
      Could not find a package configuration file provided by "rospp" with any of the following names: rosppConfig.cmake rospp-config.cmake

      cmakelists.txt如下:
      cmake_minimum_required(VERSION 3.0.2)
      project(IMUpose)

      set(CMAKE_BUILD_TYPE "Debug")

      Compile as C++11, supported in ROS Kinetic and newer

      add_compile_options(-std=c++11)

      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
      rospp
      sensor_msgs
      std_msgs
      )

      find_package(Sophus REQUIRED)
      find_package(Eigen3 REQUIRED)

      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 exec_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 exec_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

      Message1.msg

      Message2.msg

      )

      Generate services in the 'srv' folder

      add_service_files(

      FILES

      Service1.srv

      Service2.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

      sensor_msgs# std_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 exec_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 your 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(

      INCLUDE_DIRS include

      LIBRARIES IMUpose

      CATKIN_DEPENDS rospp sensor_msgs std_msgs

      # DEPENDS system_lib

      )

      ###########

      Build

      ###########

      Specify additional locations of header files

      Your package locations should be listed before other locations

      include_directories(

      include

      ${catkin_INCLUDE_DIRS}
      ${EIGEN3_INCLUDE_DIRS}
      ${Sophus_INCLUDE_DIRS}

      )

      Declare a C++ library

      add_library(${PROJECT_NAME}

      src/${PROJECT_NAME}/IMUpose.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(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

      Declare a C++ executable

      With catkin_make all packages are built within a single CMake context

      The recommended prefix ensures that target names across packages don't collide

      add_executable(IMU_node IMUpose.cpp)

      Rename C++ executable without prefix

      The above recommended prefix causes long target names, the following renames the

      target back to the shorter version for ease of user use

      e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"

      set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")

      Add cmake target dependencies of the executable

      same as for the library above

      add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

      Specify libraries to link a library or executable target against

      target_link_libraries(IMU_node
      ${catkin_LIBRARIES}
      ${Sophus_INCLUDE_DIRS}

      )

      catkin_LIBRARIES 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

      catkin_install_python(PROGRAMS

      scripts/my_python_script

      DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}

      )

      Mark executables for installation

      See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html

      install(TARGETS ${PROJECT_NAME}_node

      RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}

      )

      Mark libraries for installation

      See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html

      install(TARGETS ${PROJECT_NAME}

      ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}

      LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}

      RUNTIME DESTINATION ${CATKIN_GLOBAL_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_IMUpose.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)

      1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        在你的 CMakeLists.txt 文件中,错误出现在你试图找到并依赖一个名为 rospp 的包,但 ROS 中实际上并没有名为 rospp 的包。通常,与 ROS C++ 相关的包是 roscpp。

        为了解决这个问题,你应该将 CMakeLists.txt 文件中所有提到 rospp 的地方替换为 roscpp。下面是修改后的关键部分:

        1. 在 find_package 调用中,将 rospp 改为 roscpp:

          find_package(catkin REQUIRED COMPONENTS
          roscpp  # 修改这里
          sensor_msgs
          std_msgs
          )
          
        2. 在 catkin_package 调用中,同样将 rospp 改为 roscpp:

          catkin_package(
          INCLUDE_DIRS include
          LIBRARIES IMUpose
          CATKIN_DEPENDS roscpp sensor_msgs std_msgs  # 修改这里
          #  DEPENDS system_lib
          )
          
        3. 确保其他部分(如依赖项和编译选项)已经正确设置,并且没有其他拼写错误。

        修改这些之后,你的 CMakeLists.txt 应该能够正确找到 roscpp 包,并且你的项目应该能够编译。如果你仍然遇到问题,请检查你的 ROS 环境是否正确设置,以及所有相关的包是否都已正确安装。

        此外,还有一些其他的注意事项:

        • 确保你的 ROS 版本(如 Kinetic, Melodic 等)与你的项目设置相匹配。
        • 清理旧的构建文件(例如使用 catkin_make clean),然后重新构建项目。
        • 确保你的 package.xml 文件也正确声明了对 roscpp 的依赖。

        以上为生成回答,仅供参考~

        我是小伊,已接入ChatGpt,所有回复,仅供参考~

        1 条回复 最后回复 回复 引用 0
        • 第一个帖子
          最后一个帖子
        皖ICP备16016415号-7
        Powered by NodeBB | 鱼香ROS