本页内容

将应用程序部署到远程 Linux 设备

将应用程序文件复制到通用远程 Linux 设备,或创建 tarball 压缩包。

在项目配置文件以及“Projects >Deploy Settings ”中,指定将应用程序部署到通用远程 Linux 设备的设置。

部署到远程 Linux 设备

待安装的文件列在“Deployment ”步骤的“Files to deploy ”字段中。“Source File Path ”字段显示该文件在开发电脑上的位置。“Target Directory ”字段显示该文件在设备上安装的目录。红色文字表示该信息缺失。

如果构建系统未自动检测到源目录和目标目录,请选择“Override deployment data from build system ”,然后选择“Add ”以手动输入。要从“Files to deploy ”中删除所选路径,请选择“Remove ”。

添加缺失的文件

向部署包中添加文件的具体步骤取决于您使用的构建系统。有关详细信息,请参阅“指定项目内容”

CMake 构建

当使用 CMake 作为构建系统时,请在 `CMakeLists.txt ` 文件中使用 `install` 命令来添加缺失的文件。

例如,在CMakeLists.txt 文件中添加以下几行,将项目的二进制文件安装到远程设备上的/opt 目录中:

set(INSTALL_DESTDIR "/opt")

install(TARGETS <target>
    RUNTIME DESTINATION "${INSTALL_DESTDIR}"
    BUNDLE DESTINATION "${INSTALL_DESTDIR}"
    LIBRARY DESTINATION "${INSTALL_DESTDIR}"
)

qmake 构建

使用 qmake 时,请编辑项目.pro 文件中的INSTALLS 变量

当您运行应用程序时,Qt Creator 会将必要的文件复制到设备上,并在设备上启动应用程序。

例如,向.pro 文件中添加以下几行,即可将项目的二进制文件复制到远程设备上的/opt 目录中:

target.path = /opt
INSTALLS += target

若要部署其他文件,请将它们添加到其他目标中,并将这些目标也添加到INSTALLS 中。

部署步骤

当您在设备上运行应用程序时,Qt Creator 会首先根据部署步骤的指定,将必要的文件上传到设备上。

上传文件

默认情况下,Qt Creator 会根据“Upload files via SFTP ”步骤的指定,使用 SSH 文件传输协议 (SFTP) 将应用程序文件复制到设备上。

注意:如果 SFTP 上传失败,请确保远程设备的 SSH 守护进程已启用 SFTP。某些不支持 SFTP 的 Dropbear 版本在尝试 SFTP 上传时会崩溃。这并非Qt Creator 的错误。

如果您需要复制大量数据,请在“Upload Files via SFTP ”步骤中选择“Details ”,然后选择“Incremental deployment ”。Qt Creator 会记录部署时间,并仅复制自上次部署以来发生更改的文件。 但是,当您对设备进行重大更改时(例如手动从设备中删除文件或刷入新的磁盘映像),或者当您使用另一台具有相同 IP 地址的设备时,请取消勾选该复选框一次,以便让Qt Creator 重新部署所有文件。

创建 tar 压缩包

若仅需创建 tarball 而不将文件复制到设备上,请选择“Add Deploy Step ”>“Create tarball ”。然后删除所有其他部署步骤。

Deploy tarball via SFTP upload ”步骤指定由“Qt Creator ”将 tarball 上传至设备并进行解压。

另请参阅 《操作指南:构建与运行》、《操作指南:为远程 Linux 设备开发》以及《为远程 Linux 设备开发》。

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.