我有一个在嵌入式 Linux 设备上运行的应用程序。
在 Eclipse 中,我可以使用 eclipse-cdt-launch-remote
插件运行远程调试,我在其中指向要运行的二进制文件,以及将其放置在设备上的位置,并在运行前导出一些环境变量应用程序。
该应用程序是一个 C++
应用程序,带有用于将应用程序构建为 ELF
文件的自定义 Makefile。
应用程序通过 SSH
部署在设备上,使用用户名和密码登录。然后,我可以使用步进等从 Eclipse 进行调试。
(我也在为 arm-none-linux-gnueabi-2014.05 使用 MentorGraphics 交叉编译器)
我的问题是:我如何在 Qt Creator 中模仿相同的功能,因为我更喜欢使用 Qt Creator 编码而不是使用 Eclipse 编码? 我知道一个简单的解决方法是在 Qt Creator 中编写代码,然后使用 Eclipse 进行调试,但我真的想使用 Qt Creator 进行调试。
- 编辑:通过数小时的测试和阅读 Qt Creator 解决了这个问题
集成开发环境。
- 导入了我的 Makefile 项目。
- 然后我进入“工具”下的“选项”并添加我使用 SSH 的设备。
- 在添加调试器之后,我使用了 gdb-multiarch,因为预构建工具链二进制文件中提供的调试器不支持 python。
- 然后我添加了我的自定义工具链,将编译器路径指向工具链二进制 g++。并将 ABI 设置为 arm-linux-generic-elf-32 位。虽然我实际上没有看到 调试期间使用的编译器设置。
- 我使用我的设备、调试器和编译器创建了一个新套件。并将设备类型设置为 Generic Linux Device。指向我的系统根 我在对文件系统使用 buildroot 时进行了提取。这些是 只有我在套件中设置的选项。
- 关闭选项菜单,进入我添加新工具包的项目
- 更改了build设置并为应用程序设置了构建目录和构建步骤。
- 更改了运行设置以使用一些自定义命令,例如将新建的 .elf 应用程序移动到目标。然后我设置 本地可执行文件和远程可执行文件所在的位置。 Remote 可执行文件是我使用自定义命令从 主持人。
- 瞧!我现在可以从 Qt Creator 对我的目标运行远程调试。
最佳答案
Qt Creator 内置支持在远程设备上自动部署。
在嵌入式 Linux 设备上:
- 为root 用户创建登录密码
- 安装openssh-server 和gdb-server 包
在 Qt Creator 上:
- 输入工具 > 选项 > 设备 并创建一个指定地址(即 IP 和端口号)和凭据(即 root 和密码)的新设备。更多信息 here .
- 输入Tools > Options > Build & Run > Compilers 并添加 gcc cross-compiler 路径(更多信息可用 here)
- 输入 Tools > Options > Build & Run > Debuggers 并添加 gdb cross-debugger 路径(更多信息可用 here)
- 作为最后一步,最后进入Tools > Options > Build & Run > Kits 并将编译器、调试器和设备链接到一个套件中,同时指定 sysroot(即嵌入式 Linux 的本地拷贝根文件系统)。
- 将构建目标设置为调试。
- 在 Qt 项目中,检查是否选择了所有部署步骤(例如将文件传输到远程设备)并添加任何需要的参数(例如
-qws
用于 Qt 4.x 上的触摸屏)<
总的来说,看看指南here .
关于c++ - Qt Creator 远程调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36398798/