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

    Cmake错误: Found package configuration file, but it set ... considered to be NOT FOUND.

    已定时 已固定 已锁定 已移动
    ROS2机器人开发:从入门到实践
    cmake报错 amentcmake
    2
    5
    503
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • L
      lileishihundan
      最后由 编辑

      背景(可选):

      第十章SLAM建图配置Fishbot进行建图学习,创建功能包CMake出现错误

      问题描述:

      Found package configuration file, but it set ament_cmake_FOUND to FALSE so package "ament_cmake" is considered to be NOT FOUND.

      具体细节和上下文:

      [{
      	"resource": "/home/luck/fishbot/src/fishbot_cartographer/CMakeLists.txt",
      	"owner": "cmake-configure-diags",
      	"severity": 8,
      	"message": "CMake Error at CMakeLists.txt:19 (find_package):Found package configuration file:\n\n  /opt/ros/humble/share/ament_cmake/cmake/ament_cmakeConfig.cmake\n\nbut it set ament_cmake_FOUND to FALSE so package \"ament_cmake\" is\nconsidered to be NOT FOUND.",
      	"source": "CMake (find_package)",
      	"startLineNumber": 19,
      	"startColumn": 1,
      	"endLineNumber": 19,
      	"endColumn": 10000
      }]
      

      尝试过的解决方法:

      重新创建功能包,clone 仓库里面的

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

        您遇到的CMake错误表明CMake在尝试找到ament_cmake包时遇到了问题,尽管它找到了该包的配置文件ament_cmakeConfig.cmake,但该文件内部将ament_cmake_FOUND变量设置为了FALSE,因此CMake认为这个包没有被找到。

        ament_cmake是ROS 2特有的CMake工具集,用于处理ROS 2包和依赖项。如果您在ROS 1(如您提到的Humble版本,这是ROS 2的一个版本,而不是ROS 1)的上下文中遇到这个问题,很可能是配置或依赖项管理上的问题。然而,如果您实际上是在尝试使用ROS 1但错误地包含了ROS 2的特定包或工具,那么这也可能是问题所在。

        以下是一些解决此问题的步骤:

        1. 确认ROS版本:
          确认您正在使用的ROS版本。如果您正在使用ROS 2(如Humble),请确保所有包和工具都是为ROS 2设计的。如果您正在使用ROS 1(如Noetic或Melodic),则不应包含或依赖ROS 2的包。

        2. 检查CMakeLists.txt:
          检查CMakeLists.txt文件是否错误地包含了ROS 2的包或配置。如果这是ROS 1项目,您应该使用catkin_make或相应的ROS 1 CMake宏和函数。

        3. 依赖项检查:
          确保所有依赖项都已正确安装。如果您在ROS 2环境中工作,请确保ament_cmake已正确安装。您可以通过运行如sudo apt install ros-humble-ament-cmake(如果适用)的命令来安装它。

        4. 环境变量:
          检查您的环境变量,特别是与ROS相关的路径,如CMAKE_PREFIX_PATH和ROS_PACKAGE_PATH。这些环境变量应该指向正确的ROS安装目录和包目录。

        5. 清理和重新构建:
          如果可能,尝试清理您的构建环境(例如,删除build和devel或install目录),然后重新运行CMake和构建过程。

        6. 查阅文档和社区:
          查阅ROS和CMake的官方文档,以及相关的社区论坛和问答网站,看看是否有其他人遇到并解决了类似的问题。

        7. 检查仓库:
          如果您是从某个仓库克隆的项目,请确保您克隆的是正确的版本,且该版本与您的ROS版本兼容。

        如果您确实在ROS 1环境中工作,但不小心引入了ROS 2的依赖项,您可能需要将ament_cmake替换为ROS 1的等效项(如catkin),并相应地调整CMakeLists.txt文件。


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

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

        L 1 条回复 最后回复 回复 引用 0
        • L
          lileishihundan @小伊
          最后由 编辑

          @小伊
          环境为ROS2 humble
          CMakeLists.txt为创建自动生成,Clone仓库里面的也试过了

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

            在ROS 2 (特别是Humble版本) 中使用CMakeLists.txt文件来构建项目是一个常见且必要的步骤。如果你遇到构建问题,可能是由于多种原因造成的。以下是一些基本的步骤和检查点,可以帮助你诊断并解决问题:

            1. 检查CMakeLists.txt文件

            • 确认基本结构:确保你的CMakeLists.txt文件至少包含了必要的find_package、project、add_executable、target_link_libraries和ament_package()(对于ROS 2包)等基本命令。
            • 依赖关系:检查find_package是否正确地指定了你需要的所有依赖包。如果你使用了第三方库或ROS 2的其他包,这些都需要被正确声明。
            • 路径问题:确保所有路径都是正确的,特别是当你包含头文件或源文件时。

            2. 检查ROS 2环境

            • 环境设置:确保你已经按照ROS 2的安装指南设置了你的环境。这通常涉及到在你的.bashrc或.zshrc文件中添加ROS 2的环境变量。
            • 工作空间:确认你正在一个正确的ROS 2工作空间内工作,并且该工作空间已经被构建过(使用colcon build)。

            3. 编译问题

            • 使用colcon build:ROS 2使用colcon作为构建系统,而不是直接使用cmake。确保你在工作空间的根目录下运行colcon build。
            • 查看编译日志:如果构建失败,查看colcon build的输出或生成的日志文件,以获取更具体的错误信息。

            4. 依赖问题

            • 安装缺失的依赖:如果find_package找不到某些包,可能是因为这些包没有安装在你的系统上。你可以使用sudo apt install ros-humble-<package-name>来安装ROS 2包,或者使用其他方法安装第三方库。
            • 检查版本兼容性:确保你安装的包版本与你的ROS 2版本兼容。

            5. 示例和文档

            • 查看官方示例:ROS 2的官方文档和GitHub仓库中通常有示例项目,这些可以作为参考。
            • 阅读官方文档:ROS 2的官方文档是解决问题的好资源。

            6. 社区支持

            • ROS Answers:ROS社区有一个问答平台ROS Answers,你可以在那里寻求帮助。
            • GitHub Issues:如果你使用的是某个具体的ROS 2包或项目,查看其GitHub仓库的Issues部分可能会有帮助。

            通过以上步骤,你应该能够诊断并解决大多数与CMakeLists.txt和ROS 2构建相关的问题。如果问题依然存在,请提供更具体的错误信息或日志,以便进一步分析。


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

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

            1 条回复 最后回复 回复 引用 0
            • L
              lileishihundan
              最后由 编辑

              重新安装ros2解决该问题

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