C

故障排除

另请参阅 已知问题 列表。

一般问题

我在 Qt Creator 中部署/启动应用程序时遇到问题

请检查设备是否通过 USB 或以太网(根据设备不同)正确连接到开发主机。请参阅 连接问题

我在部署/启动 Qt 或 Qt Quick 示例应用程序时遇到问题

由于 qmake 的一个技术特性,无法为放置在 Qt 源代码树中的任何应用获得正确的部署设置。

解决方案是将示例源代码复制到 Qt 源代码树之外的位置,并打开此示例应用程序的副本。

我在更新 SDK 后无法在硬件上启动或运行应用程序

请记住,也更新您的设备到最新版本的 Boot 到 Qt 软件堆栈的最新版本。请参阅您目标设备的 Boot 到 Qt 软件堆栈 安装指南

应用程序终止。运行进程时出错:进程崩溃

在 Qt Creator 中终止应用程序时,您可能会看到消息 正在终止应用程序。运行进程时出错:进程崩溃。这是正常情况,并不表示您的代码存在问题;向应用程序发送了一个 SIGTERM 信号,Qt 将其解释为崩溃。

鼠标或触摸输入不起作用

请参阅自定义。

注意: 在嵌入式Linux系统中,通常支持鼠标和键盘设备的热插拔。

应用程序停止并显示 "EGLFS: OpenGL 窗口不能与其他窗口混合。"

OpenGL和Qt Quick 2应用程序在同一时间只能有一个全屏窗口存在。尝试创建另一个OpenGL窗口,或者尝试将OpenGL窗口与光栅化窗口混合,将显示以上信息并终止应用程序。

注意: 对于光栅化窗口(基于QWidget或QPainter的软件渲染内容),没有此类限制。

我无法编辑设备上 appcontroller.conf 的内容

此文件所在的自定义文件系统可能会设置为只读。

请参阅自定义。

如何启用 C++17 功能

要在编译器中启用C++17功能,请将CONFIG += c++17添加到.pro文件中。

当我点击 Qt Creator 中的运行按钮时,如何在目标设备上运行脚本?

您可以按部署应用程序到通用远程Linux设备中的说明添加自定义部署步骤自定义远程命令

在添加自定义远程命令时,请记住在远程命令中包含脚本的全路径。同时,确保您的脚本具有足够的执行权限。

我如何设置应用程序的远程部署目录?

远程部署目录取决于在项目的.pro.pri文件中设置的qmake INSTAL变量值。

要将文件部署到/my/installation/directory,请将以下代码添加到您的.pro文件中,

target.path = /my/installation/directory
INSTALLS += target

如果使用.pri文件,可以定义如下

target.path = /opt/$${TARGET}/bin

我得到了一个错误:“EGL错误:无法创建EGL表面:错误=0x3003”。

如果Qt无法创建新表面,错误可能出现在目标设备屏幕被其他应用程序使用的情况下。当您使用Qt Creator部署应用程序时,您不应看到此错误,因为appcontroller确保应用程序正确部署。因此,在发生EGL错误的情况下,您应考虑是否可以使用Qt Creator来部署您的应用程序。

如果您不使用Qt Creator来部署应用程序,您必须确保目标设备屏幕没有在使用其他应用程序。例如,在设备上,启动到Qt必须未运行。您还可以检查更新EGLFS相关环境变量是否有帮助。更多信息请参阅EGLFS

Boot 到 Qt 设置为自动启动应用程序,但应用程序没有显示出来

如果您遇到此问题,请考虑以下步骤

  • 在终端中,通过SSH登录到目标设备
  • 运行以下命令
    systemctl status qtlauncher
    systemctl status b2qt
  • 生成的日志可能有助于识别问题

连接问题

我无法通过 USB 连接到我的嵌入式目标设备

  • Linux

    请检查您是否已按照设置嵌入式设备的USB访问中的说明设置规则。

  • Windows

    您可以通过设备的设备管理器检查是否已安装驱动程序。如果您尚未安装任何驱动程序,应可在其他设备中找到USB功能文件系统。如果是这种情况,您必须按照以下步骤安装USB驱动程序

    1. 打开其他设备 > USB功能文件系统
    2. 切换到“驱动程序”标签,并单击“更新驱动程序”。
    3. 不要让Windows自动搜索更新驱动程序,而是选择“浏览我的电脑以查找驱动程序软件”。
    4. 选择“让我从计算机上的设备驱动程序列表中选择”。
    5. 打开“包含磁盘...
    6. 安装位于 <SDK>\Tools\qdb\usb_drivers\qdb_driver\qdb_device.inf 的驱动程序
  • Linux/Windows/macOS

    如果已执行所有上述步骤,并已根据设置目标设备上的USB以太网配置USB以太网,则可能需要从目标设备接收日志以报告新错误或联系Qt支持。

    请将QDB日志文件包含在你的支持请求中。您可以在Windows的%APPDATA%\qdb\qdb.log、Linux的~/.local/share/qdb/qdb.log和macOS的~/.Library/Application Support/qdb/qdb.log中找到此日志文件。

访问我的嵌入式 Linux 设备的用户名和密码是什么?

嵌入式Linux设备可以使用用户root和空密码访问。

我得到一个错误:"连接错误:等待服务器回复超时。"

即使目标设备显示为“Ready to use”且为绿色,Qt Creator上也可能会出现错误。

要解决这个问题,请检查您的宿主机是否配置为为新发现的接口获取IP地址。或者,您可以手动配置它到匹配的子网。如果宿主机上只有一个连结的Boot to Qt设备并且IP地址不属于宿主机上的其他网络,则应使用172.16.58.2/30作为配置。

我无法通过以太网连接到我的嵌入式目标设备

Qt Creator必须知道目标HW的IP地址。如果您在启动设备时,"Get Started with Boot to Qt"没有显示目标HW的IP地址,则需要通过其他方式找出IP地址。

以下您可以找到一些寻找设备IP地址的替代方法:

  • 使用Linux的ip address命令,通过目标HW的USB调试终端找到IP地址。
  • Boot to Qt软件栈使用DHCP,因此您可以在您的网络路由器上查找它的IP地址。
  • 重启目标HW,并监听本地网络上的DHCP请求,例如,在Linux中使用sudo tcpdump -i <ethernet-interface> port 67 or port 68 -e -n -vv命令。

在特定Qt许可证下提供。
了解更多。