全志T113开发板配置QT环境

本文详细介绍了如何在Buildroot中加入QT5并配置,以及在Ubuntu中安装QTCreator并针对不同错误进行调试的过程,包括解决库文件缺失问题和平台插件加载失败等。
摘要由CSDN通过智能技术生成

一、在Buildroot中加入QT5

1、进入图形配置:

make menuconfig
目录:> Target packages > Graphic libraries and applications (graphic/text) > Q5

2、编译

make -j6

二、在Ubuntu中安装QTCreator,并配置

1、打开选项界面: 在 QtCreator 界面中,依次点击 tools -> options

2、选择编译器: 在出现的选项对话框中,在左边点击 Kits,右边选择 Compilers 标签,并点击 Add 选择 Custom->C++

3、设置编译器: 在弹出的对话框中填写以下内容: Compiler path , Make path 和 ABI; 填写完成后,点击 Apply 进行保存

4、添加QT版本

5、综合选择: 继续选择上边的 Kits 标签,点击右侧 Add,填写相应内容:

  • Name:输入 T113

  • Sysroot:输入交叉编译工具链的目录

  • compiler:c 和 c++这两个选择框里,都选择 Custom

  • Qtversio:选择上图中配置的“Qt5.15.8 (host) ” 配置完成后点击 apply,点击 OK

6、创建Helloworld项目:

  • 运行 QtCreator 后,在菜单栏选择 File -> New File or Project

  • 在 打 开 的 对 话 框 中 , 依 次 选 择 Application -> Qt Widgets Application ,点击 Choose

  • 输入项目名字、设置保存位置: 在弹出的 Qt Widgets Application 对话框中 , 设 置 项 目 名 称 为 helloword,Create in 一栏填写项目的存储路,点击 Next

  • 选择之前添加好的 Kits(T113),继续点击 Next

  • 选择基类: 当前的的应用继承自哪种 Widget,默认选择 QMainWindow,然后点击 Next 进入下一步

7、编译QT程序

  • 点击菜单栏 Build -> Build Project hellowrld,开始编译、构建项目

  • helloworld 项目构建成功后,编译好的二进制文件存放在以下目录中: /home/book/build-helloword-T113-Debug,可以使用 file 命令查看该 APP 是否被编译为 ARM 架构

三、解决BUG过程

1、报错1:

error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory

缺少库,在开发板使用ldd命令查看helloworld 程序 看看还缺少哪些库文件

# ldd hello
        libatomic.so.1 => /lib/libatomic.so.1 (0xb6f47000)
        libQt5Widgets.so.5 => not found
        libQt5Gui.so.5 => not found
        libQt5Core.so.5 => not found
        libpthread.so.0 => /lib/libpthread.so.0 (0xb6f23000)
        librt.so.1 => /lib/librt.so.1 (0xb6f0d000)
        libdl.so.2 => /lib/libdl.so.2 (0xb6efa000)
        libstdc++.so.6 => /lib/libstdc++.so.6 (0xb6def000)
        libm.so.6 => /lib/libm.so.6 (0xb6d51000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb6d27000)
        libc.so.6 => /lib/libc.so.6 (0xb6c39000)
        /lib/ld-linux.so.3 (0xb6f5e000)

上述显示not found的均为缺少的库文件,这些库文件需要在Ubuntu指定目录中查找

/home/book/buildroot_100ask_t113-pro/buildroot/output/build/qt5base-f31e001a9399e4e620847ea2c3e90749350140ae/lib

然后把缺少的文件复制到nfs_roots中,再在开发板上复制到 /usr/lib 中

2、报错2:

qt.qpa.plugin: Could not find the Qt platform plugin "eglfs" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

查看开发板的QT_QPA_PLATFORM环境变量,并把它修改为linuxfb:

echo $QT_QPA_PLATFORM
export QT_QPA_PLATFORM=linuxfb

在共享文件夹下面创建一个文件:platforms,并 把libqlinuxfxb.so 文件复制进去

3、报错3:

QFactoryLoader::QFactoryLoader() checking directory path "/mnt/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/mnt/platforms/libqlinuxfb.so"
Found metadata in lib /mnt/platforms/libqlinuxfb.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "linuxfb"
        ]
    },
    "archreq": 0,
    "className": "QLinuxFbIntegrationPlugin",
    "debug": false,
    "version": 331520
}


Got keys from plugin meta data ("linuxfb")
Cannot load library /mnt/platforms/libqlinuxfb.so: (libts.so.0: cannot open shared object f       ile: No such file or directory)
QLibraryPrivate::loadPlugin failed on "/mnt/platforms/libqlinuxfb.so" : "Cannot load librar       y /mnt/platforms/libqlinuxfb.so: (libts.so.0: cannot open shared object file: No such file        or directory)"
qt.qpa.plugin: Could not load the Qt platform plugin "linuxfb" in "" even though it was fou       nd.
This application failed to start because no Qt platform plugin could be initialized. Reinst       alling the application may fix this problem.

Available platform plugins are: linuxfb.

Aborted

首先修改debug文件让其输出详细的报错内容:

vi /etc/profile
在末尾加入export QT_DEBUG_PLUGINS=1

保存退出,并重启开发板

再次挂载nfs_rootfs目录,并执行./hello程序,会有详细报错

从详细的报错中可以看出,报错原因主要是缺少了libts.so.0文件,那就重复过程1,缺少什么文件就去ubuntu的对应目录中找到对应的文件,该库文件最终要拷贝到开发板的/usr/lib/目录中,直到库文件不在缺失,即可在开发板上开到qt窗口的运行画面

  • 42
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值