Qt Creator远程调试

时间:2016-04-04 09:22:24

标签: c++ qt qt-creator embedded-linux

我有一个在嵌入式Linux设备上运行的应用程序。 在Eclipse中,我可以使用eclipse-cdt-launch-remote插件运行远程调试,在该插件中我指向要运行的二进制文件,以及在运行应用程序之前将其放在设备上的某些环境变量。 该应用程序是一个C++应用程序,带有一个自定义Makefile,用于将应用程序构建为ELF文件。

应用程序通过SSH部署在设备上,使用用户和密码登录。然后,我可以使用步进等从Eclipse进行调试。 (我也使用MentorGraphics交叉编译器arm-none-linux-gnueabi-2014.05)

我的问题是:我如何在Qt Creator中模仿相同的功能,因为我喜欢用Qt Creator编码而不是用Eclipse编码? 我知道一个简单的解决方法是在Qt Creator中编码,然后使用Eclipse进行调试,但我真的想用Qt Creator进行调试。

  • 编辑:通过几小时的测试和阅读Qt Creator来解决它 IDE。
    1. 导入了我的Makefile项目项目。
    2. 然后我进入了工具下的选项,并添加了使用SSH的设备。
    3. 之后我添加了一个调试器,我使用了gdb-multiarch,因为预构建的工具链二进制文件中提供的不支持python。
    4. 然后我添加了自定义工具链,将编译器路径指向工具链二进制g ++。并将ABI设置为 在arm-linux的泛型小精灵 - 32位。虽然我实际上没有看到 调试期间使用的编译器设置。
    5. 我使用我的设备,调试器和编译器创建了一个新工具包。并将设备类型设置为Generic Linux Device。指向我的sysroot 我在使用buildroot文件系统时解压缩了。这些是 我在套件中设置的唯一选项。
    6. 关闭选项菜单,然后进入我添加新工具包的项目
    7. 更改了构建设置,并为应用程序设置了构建目录和构建步骤。
    8. 更改了运行设置以使用一些自定义命令,例如将新构建的.elf应用程序移动到目标。然后我设置在哪里 本地可执行文件是远程可执行文件的位置。遥控器 可执行文件是我使用自定义命令从目标移动到目标的 主机。
    9. 瞧!我现在可以从Qt Creator对我的目标进行远程调试。

1 个答案:

答案 0 :(得分:6)

Qt Creator内置支持远程设备上的自动部署。

在嵌入式Linux设备上:

  • root 用户
  • 创建登录密码
  • 安装 openssh-server gdb-server 软件包

在Qt Creator上:

  • 输入工具>选项>设备并创建一个新设备,指定地址(即IP和端口号)和凭证(即根和密码)。更多信息here
  • 输入工具>选项>建设与发展运行>编译器并添加gcc 交叉 - 编译器路径(可用的更多信息here
  • 输入工具>选项>建设与发展运行>调试器并添加gdb 交叉 -debugger路径(可用的更多信息here
  • 最后一步,最后输入工具>选项>建设与发展运行>套件并将编译器,调试器和设备链接到一个套件中,同时指定sysroot(即嵌入式Linux根文件系统的本地副本)。
  • 将构建目标设置为Debug。
  • 在Qt项目中,检查是否已选择所有部署步骤(例如,将文件传输到远程设备)并在Qt 4.x上添加任何所需的参数(例如-qws用于触摸屏)

一般情况下,请查看指南here