使用Qt Creator远程部署到ARM linux开发板

本博客指导如何配置SSH和Kit,修改工程配置文件,实现通过编译将代码同步至开发板并在其上运行。包括新建genericlinuxdevice、配置目标路径和命令行参数等步骤。

一,配置ssh

首先,请参考上篇博文配置好你的ssh,并确保可以通过ssh控制板子,通过sftp下载主机文件.

然后,在tools->options->devices中新建一个generic linux device:

点击Test按钮,配置正常的话的效果如下:

二,配置kit

三,修改工程配置文件

添加下边两行内容,指明要远程下载到的目录:

  1. target.path=/test
  2. INSTALLS += target
target.path=/test
INSTALLS += target

这时候,在project中应该可以看到下边的内容:

在run项中添加命令行参数-qws



现在点击绿色三角按钮就可以做到编译并且同步到开发板,在开发板上运行了,另外需要注意的一点是运行程序后必须手动关闭,否则下一次编译运行时会出现:

  1. 09:11:41: Upload of file '/home/wgh/QtProject/build-20130831armTest-Qt4_7_1_ARM-Release/20130831armTest' failed. The server said: 'Failure'.
  2. 09:11:41: Deploy step failed.
<think> 我们正在处理用户的问题:Qt Creator开发板远程部署文件时无法部署到目标文件夹的解决方案。 根据引用内容,我们可以总结出以下可能的原因和解决方案: 1. 引用[3]中显示了一个错误信息:上传文件失败,服务器返回'Failure'。这可能与文件权限、目标路径不存在或配置错误有关。 2. 引用[2]提到了两种部署方式:rsync/sftp和scp。需要确保开发板上有相应的服务(sftpserver或rsync)运行,并且配置正确。 3. 引用[2]和[5]提到了在.pro文件中设置目标路径(target.path)以及安装路径(INSTALLS)。如果目标路径在开发板上不存在,或者没有写入权限,会导致部署失败。 4. 引用[5]提到了一种排查方法:检查开发板上目标文件夹是否存在。如果不存在,需要手动创建或者修改配置到已存在的路径。 解决方案步骤: 步骤1:检查开发板上的目标文件夹是否存在,以及权限是否正确。 - 登录开发板,检查目标路径(例如/opt/$${TARGET}/bin)是否存在。如果不存在,使用mkdir创建。 - 确保目标文件夹有可写权限(例如使用chmod修改权限)。 步骤2:检查.pro文件中的部署路径设置。 - 在Qt Creator中打开项目,检查.pro文件中设置的target.path。例如: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target - 确保这个路径是开发板上的绝对路径,并且与开发板上的实际路径一致。 步骤3:检查Qt Creator中设备的配置。 - 在Qt Creator中,打开“设备”设置(位于“工具”->“选项”->“设备”),检查所配置的设备的文件系统是否有足够的空间,以及路径是否正确。 - 确保在配置设备时,指定的根目录和开发板一致。 步骤4:检查上传方式。 - 如果使用sftp/rsync,确保开发板上有相应的服务运行(比如openssh-server包含sftp,或者安装了rsync)。 - 如果使用scp,同样需要确保ssh服务正常运行。 步骤5:检查开发板上的磁盘空间。 - 如果开发板磁盘空间不足,也会导致上传失败。使用`df -h`命令检查。 步骤6:尝试手动上传文件进行测试。 - 在Ubuntu终端中,使用scp命令手动上传文件到开发板的相同路径,测试是否成功。例如: scp /path/to/local/file username@board_ip:/opt/target/bin/ - 如果手动上传失败,则根据错误信息(如权限拒绝、路径不存在等)进行修复。 步骤7:检查Qt Creator部署步骤配置。 - 在项目的构建和运行设置中,检查部署步骤的配置。确保没有额外的错误配置。 步骤8:查看Qt Creator的编译输出日志,获取更详细的错误信息。 - 在Qt Creator的“编译输出”窗口中,查看详细的错误信息,以便进一步定位问题。 根据引用[5]的排查方法,如果开发板上目标文件夹下没有与项目同名的文件夹(即程序文件存放的目录),可能是由于路径配置问题。因此,重点检查目标路径是否存在以及权限是否正确。 总结:最常见的原因是目标文件夹不存在或者权限不足。按照上述步骤逐一排查,应该可以解决部署失败的问题。 生成相关问题: §§相关问题§§ 1. 如何配置Qt Creator以实现远程部署ARM开发板? 2. Qt Creator远程部署时出现权限错误应如何解决? 3. 如何在ARM开发板上配置sftp或rsync服务? 4. 如何修改Qt项目的.pro文件以指定部署路径? 5. Qt Creator部署时提示磁盘空间不足怎么办? </think> 根据引用内容,Qt Creator远程部署文件失败通常由以下原因及解决方案: ### 主要原因及解决方案 1. **目标路径权限不足** - 开发板上的部署目录(如`/opt`或`/temp`)需确保有写入权限 - **解决方案**: ```bash # 在开发板终端执行(示例路径) sudo chmod 777 /opt ``` 或修改`.pro`文件中的部署路径为可写目录(如`/home/user`)[^2][^5] 2. **路径配置错误** - 检查`.pro`文件中`target.path`是否有效 - **正确配置示例**: ```makefile # 在.pro文件中指定 target.path = /home/root/apps # 开发板实际存在的路径 !isEmpty(target.path): INSTALLS += target ``` 确保开发板存在该路径(可通过SSH登录验证)[^2][^5] 3. **开发板服务未启用** - 部署依赖`sftpd/rsyncd`服务 - **解决方案**: ```bash # 开发板安装服务(二选一) sudo apt install openssh-sftp-server # SFTP方案 sudo apt install rsync # rsync方案 ``` 重启服务:`sudo systemctl restart sshd`[^2] 4. **文件冲突导致覆盖失败** - 开发板已存在同名文件且被占用 - **解决方案**: - 在Qt Creator部署步骤中添加预执行命令: ```bash rm -f /opt/$${TARGET}/bin/your_app # 强制删除旧文件 ``` - 或手动登录开发板删除旧程序[^5] 5. **磁盘空间不足** - 检查开发板存储空间: ```bash df -h # 查看磁盘使用 ``` 清理空间或修改部署到剩余空间充足的目录[^3] --- ### 完整排查流程 1. **验证目标路径** SSH登录开发板检查目标目录是否存在: ```bash ls -ld /opt/your_app_dir # 确认目录存在且可写 ``` 2. **修改Qt Creator配置** - **设备设置** → **通用Linux设备** → 检查IP和用户名正确 - **构建套件(Kit)** → 检查`qmake`和交叉编译器路径正确[^2][^4] ![配置图示](https://example.com/qt_config.png) *(参考引用[2]图示)* 3. **启用详细日志** 在Qt Creator的`项目设置` → `部署步骤` → 勾选`显示部署输出`,根据错误日志精准定位[^3]。 4. **替代部署方案** 若仍失败,改用SCP手动部署: ```bash scp your_app user@dev_board_ip:/home/user/app/ # 手动传输 ``` 成功后反推Qt Creator配置差异[^2]。 > 通过上述步骤,90%的部署失败问题可解决。重点检查**路径存在性**、**权限控制**和**服务状态**三个核心环节[^2][^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值