QtCreator自定义构建项目部署:如何添加待部署文件?
解决Qt Creator自定义构建系统下嵌入式Linux部署文件为空的问题
针对你用Qt Creator 4.6.0自定义构建系统交叉编译嵌入式Linux项目,部署时「Files to deploy」列表为空的问题,我给你几个实用的解决方案:
方法一:手动添加SFTP部署文件(最直接)
既然你已经选了「Upload files via SFTP」作为部署方式,其实可以手动指定要上传的文件,步骤如下:
- 打开项目的Run Settings(运行设置)页面,定位到「Deployment」区域。
- 找到「Files to deploy」列表旁的Add按钮(通常是个加号图标),点击后弹出配置对话框:
- 在「Local file path」中选择你本地构建生成的可执行文件(比如你提到的
build/test) - 在「Remote directory」中填写嵌入式设备上的目标路径(比如
/home/root)
- 在「Local file path」中选择你本地构建生成的可执行文件(比如你提到的
- 如果还有依赖库、配置文件等需要部署,重复步骤2逐个添加即可。
方法二:使用自定义部署步骤(适合批量/复杂部署)
如果需要部署多个文件,或者要执行额外的部署操作(比如设置可执行权限、重启服务),可以添加自定义部署步骤:
- 在「Run Settings」的「Deployment」区域,点击Add Deploy Step,选择「Custom Process Step」。
- 配置自定义步骤的参数:
- Command:可以用
scp或者sftp命令,比如用scp上传单个文件:scp build/test root@你的设备IP:/home/root - 如果要批量上传,也可以写个简单的脚本作为命令,比如:
sftp root@你的设备IP << EOF put build/test /home/root put build/libcustom.so /home/root/lib EOF - 建议提前配置SSH免密登录,避免每次部署都输入密码。
- Command:可以用
方法三:让IDE自动识别构建输出(从根源解决)
Qt Creator的自定义构建系统支持标记构建输出文件,这样IDE可能会自动把这些文件加入部署列表:
- 打开项目的Build Settings(构建设置)页面,找到你的「Custom Process Step」。
- 切换到「Outputs」标签页,点击Add按钮:
- 输入本地构建生成的可执行文件路径(比如
build/test) - 将「Type」设置为「Executable」
- 输入本地构建生成的可执行文件路径(比如
- 保存设置后回到「Run Settings」的部署区域,检查「Files to deploy」列表是否自动填充了该文件。
为什么你之前的方法没用?
- qmake的
INSTALLS变量:仅适用于qmake项目,自定义构建系统不会读取.pro文件,所以这个方法无效。 QtCreatorDeployment.txt:这个文件是CMake项目专用的,自定义构建系统不会解析它,自然不会生效。
额外注意事项
- 先手动测试SFTP/SSH连接是否正常(比如在终端执行
sftp root@你的设备IP),确保设备能正常访问。 - 如果部署后可执行文件没有权限运行,可以在自定义部署步骤中添加一条命令:
ssh root@你的设备IP chmod +x /home/root/test。
内容的提问来源于stack exchange,提问作者Jetski S-type
相关产品推荐
相关产品推荐

