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

    如何解决

    已定时 已固定 已锁定 已移动 未解决
    综合问题
    ros1 ros noetic
    2
    2
    333
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 1
      1419552147
      最后由 编辑

      CMake Error at demo01/CMakeLists.txt:27 (add_dependencies):
      Cannot add target-level dependencies to non-existent target "demo01".

      The add_dependencies works for top-level logical targets created by the
      add_executable, add_library, or add_custom_target commands. If you want to
      add file-level dependencies see the DEPENDS option of the add_custom_target
      and add_custom_command commands.

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

        这个错误信息表明你在 CMakeLists.txt 文件的第 27 行使用了 add_dependencies 命令,但是尝试为其添加依赖的目标 "demo01" 并不存在。add_dependencies 命令用于在目标之间设置依赖关系,这些目标必须是通过 add_executable、add_library 或 add_custom_target 创建的。

        要解决这个问题,你可以按照以下步骤进行:

        1. 检查目标是否存在:
          确认在你的 CMakeLists.txt 文件中是否已经使用 add_executable、add_library 或 add_custom_target 创建了一个名为 "demo01" 的目标。如果没有,你需要创建它,或者更改 add_dependencies 中的目标名称为一个已存在的目标。

        2. 创建目标:
          如果你需要创建一个名为 "demo01" 的可执行文件或库,可以使用以下命令之一:

          • 创建可执行文件:
            add_executable(demo01 source_file1.cpp source_file2.cpp)
            
          • 创建库:
            add_library(demo01 SHARED source_file1.cpp source_file2.cpp)
            
            或者
            add_library(demo01 STATIC source_file1.cpp source_file2.cpp)
            
        3. 调整依赖关系:
          如果你确实有一个不同的目标,并且想要设置依赖关系,确保在 add_dependencies 中使用正确的目标名称。

        4. 使用 add_custom_target:
          如果你想要设置一个不直接对应于可执行文件或库的目标(例如,一个仅用于执行某些命令的目标),你可以使用 add_custom_target。例如:

          add_custom_target(my_custom_target COMMAND some_command)
          add_dependencies(another_target my_custom_target)
          
        5. 检查顺序:
          确保 add_executable、add_library 或 add_custom_target 调用在 add_dependencies 调用之前。CMake 是按照顺序解析命令的,如果目标在依赖关系声明之后才被创建,CMake 将无法识别它。

        6. 重新运行 CMake:
          修改完 CMakeLists.txt 后,确保重新运行 CMake 来更新构建系统。

        通过以上步骤,你应该能够解决这个错误。如果问题仍然存在,仔细检查 CMakeLists.txt 文件中的命令和顺序是否正确。


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

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

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