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驱动程序
- 打开其他设备 > USB功能文件系统。
- 切换到“驱动程序”标签,并单击“更新驱动程序”。
- 不要让Windows自动搜索更新驱动程序,而是选择“浏览我的电脑以查找驱动程序软件”。
- 选择“让我从计算机上的设备驱动程序列表中选择”。
- 打开“包含磁盘...
- 安装位于 <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许可证下提供。
了解更多。