QT Creator 无法在 i.Mx6 (buildroot) 上进行远程运行和调试

4

使用基于Qt 5.7.0的Qt Creator 4.0.2,我的应用名称为test

板子型号:i.M6Q with buildroot (Qt 5.9)

问题:

A. 运行qt应用程序时出现以下错误

EGL library doesn't support Emulator extensions 
Aborted
Application finished with exit code 134.

但是我可以使用./test在开发板上运行qt应用程序,并且它正常显示。

B. 当我开始调试时出现这个错误

The GDB process terminated unexpectedly (exit code 1)

如何修复这些错误?

以下是我设置的内容:

  1. test.pro

    QT += core gui
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    TARGET = test
    TEMPLATE = app
    SOURCES += main.cpp\
    mainwindow.cpp
    HEADERS  += mainwindow.h
    FORMS    += mainwindow.ui
    
    target.path = /root/test
    INSTALLS += target
    
  2. Tools > Options > Build & Run > Compilers

    Name : imx6 buildroot GCC

    buildroot/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabihf-g++
    
  3. Tools > Options > Build & Run > Debuggers

    Name : IMX6 buildroot gdb

    buildroot/output/host/usr/bin/arm-buildroot-linux-uclibcgnueabihf-gdb
    
  4. Tools > Options > Build & Run > Qt Versions

    Version Name : Qt %{Qt:Version} (buildroot)

    buildroot/output/host/usr/bin/qmake
    
  5. Tools > Options > Build & Run > Kits look like this image

  6. Tools > Options > Devices:

    Device test finished successfully.
    
  7. This is my main.cpp

    #include "mainwindow.h"
    #include <QApplication>
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
    
        return a.exec();
    }
    

请勿链接错误消息的图像;请将文本添加到您的问题中。 - Murphy
@Murphy 感谢您的建议,我已将错误消息编辑为文本模式。 - Julia Ding
1个回答

5

这是一个 Qt BUG的报告。

问题在于构建系统没有选择正确的eglfs后端。

解决方法是在运行Qt应用程序之前导出:

QT_QPA_EGLFS_INTEGRATION=eglfs_viv,或者

QT_QPA_EGLFS_INTEGRATION=none

今天我运行时出现了另一个错误,即“line 1: syntax error: unexpected ";;"”,并且无法正常在板子上运行qt应用程序。 - Julia Ding
在“常规消息”中显示“buildroot/output/host/mkspecs/features/qmake_use.prf(6): 'take_first'不是一个被识别的替换函数。 项目错误:库''未定义。” - Julia Ding
@JuliaDing 这些似乎是与此帖子无关的新代码错误。您可以关闭此帖子,并提供足够详细的信息以提出新问题。 - Mohammad Kanan
我搜索了"eglfs_viv",然后发现我的板子上没有图形加速器可以运行使用"eglfs_viv"的qt应用程序。当我输入'# CinematicExperience-demo -platform eglfs'时,它会显示'qt.qpa.egldeviceintegration: Failed to load EGL device integration "eglfs_viv"'。但是CinematicExperience-demo正常运行?我将尝试在i.Mx6上开启图形加速,然后再尝试您的答案。如果有效,我会检查您的答案,谢谢。 - Julia Ding
1
最初,我在VMware上运行Ubuntu。当我不使用VMware时,Qt应用程序可以成功远程运行和调试。 - Julia Ding

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接