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

    3.4.4在功能包中使用QT,编译通过,运行出错

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

      6927b06f-3613-45f3-82a5-e1dda4a855b1-图片.png

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

        在使用Qt进行ROS(Robot Operating System)开发时,如果编译通过但运行时出错,可能的原因和解决方法有很多。以下是一些常见的检查点和解决步骤,可以帮助你诊断和解决问题:

        1. 环境配置:

          • 确保你的ROS环境已经正确设置,包括source了正确的setup.bash文件。
          • 确保Qt的库路径已经包含在LD_LIBRARY_PATH中(Linux系统)。
        2. 依赖关系:

          • 检查你的CMakeLists.txt文件,确保所有Qt相关的find_package和target_link_libraries都被正确设置。
          • 确保所有需要的Qt模块都被包含在内,例如QtCore, QtGui, QtWidgets等。
        3. 资源文件:

          • 如果你的Qt应用使用了资源文件(.qrc),确保这些资源文件被正确编译并链接到你的程序中。
          • 检查资源文件的路径和引用是否正确。
        4. UI文件:

          • 如果你使用了Qt Designer创建的.ui文件,确保这些文件已经被uic工具处理并生成相应的C++代码。
          • 检查CMakeLists.txt中是否有相应的处理规则。
        5. 插件和库:

          • 如果你的应用依赖于特定的Qt插件(如QtWebEngine),确保这些插件被正确安装且路径被正确设置。
          • 对于第三方库,确保它们与你的Qt版本兼容。
        6. 运行时错误:

          • 使用工具如gdb(GNU调试器)或lldb(LLVM调试器)来运行你的程序,以获取更详细的错误信息。
          • 检查程序输出的错误信息或堆栈跟踪,看看是否有更具体的错误提示。
        7. 权限问题:

          • 确保你的程序有权限访问所有必要的文件和目录。
          • 在Linux上,这可能需要检查文件的读写权限或使用sudo运行程序(虽然不推荐用于常规操作)。
        8. ROS与Qt的集成:

          • 确保你的ROS节点和Qt GUI之间的通信是线程安全的。Qt有自己的事件循环,与ROS的回调机制可能冲突。
          • 使用QThread或类似的机制来管理不同的线程,确保UI更新在Qt的主线程中进行。
        9. 重新构建:

          • 有时候,简单的重新构建整个项目(clean build)可以解决一些看似复杂的问题。
        10. 查看文档和社区:

          • 查阅ROS和Qt的官方文档,看看是否有相关的指南或常见问题解答。
          • 访问ROS社区论坛或Stack Overflow,看看是否有人遇到过类似的问题。

        通过上述步骤,你应该能够定位并解决在ROS功能包中使用Qt时遇到的运行时错误。如果问题仍然存在,可能需要更详细的错误信息来进一步分析。


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

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

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

          检查了所有的程序和cmakelist.txt,和视频中的完全一样,编译正常通过,但运行就是出错,能不能辛苦大家帮分析下,谢谢!
          出错信息如下:

          symbol lookup error: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined symbol: __libc_pthread_init, version GLIBC_PRIVATE
          [ros2run]: Process exited with failure 127

          检查snap 目录下无core20文件

          小鱼小 1 条回复 最后回复 回复 引用 0
          • 小鱼小
            小鱼 技术大佬 @lybmlj
            最后由 编辑

            @lybmlj 不按教程装vscode....
            右上搜一下就有答案

            新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

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

              @小鱼 和前面一些人碰到了情况一样,在LINUX终端中可执行,但在VSCODE中出错,可能是和SNAP有关,谢谢

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