zoukankan      html  css  js  c++  java
  • imx6ull+debian10 构建静态qt交叉编译环境

    # PC:Ubuntu18.04
    # GCC: arm-linux-gnueabihf- 7.4.0
    # 开发板:
    # imx6ull+debian10(文件系统为野火提供的)

    # 此处需要编译的是带gstreamer的qt 静态库,仅着重说明安装gstreamer的库,忽略其他工具的安装
    # 参考:太多,忘了大部分
    https://wiki.qt.io/RaspberryPi2EGLFS

    #期间PC端安装了同样的库,但好像没什么用
    # 开发板安装gstreamer相关库,还安装了其他库(试错太多,忘了)
    apt-get install libgstreamer1.0-dev
    # 本人安装了以下的库才解决问题: ERROR: Feature 'gstreamer_1_0' was enabled, but the pre-condition 'libs.gstreamer_1_0' failed.
    apt-get install gstreamer1.0-omx libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
    # 安装以上库即可编译qt
    # 开发板安装一下库解决运行报错:
    # GStreamer-CRITICAL: gst_element_get_static_pad: assertion 'GST_IS_ELEMENT (element)' failed
    apt-get install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools


    # 建立开发板的文件系统
    # 建立文件夹
    # 参考: https://wiki.qt.io/RaspberryPi2EGLFS
    # 8.[on host PC] Create a sysroot. Using rsync we can properly keep things synchronized in the future as well. Replace raspberrypi.local with the address of the Pi

    mkdir sysroot sysroot/usr sysroot/opt
    rsync -avz pi@raspberrypi.local:/lib sysroot
    rsync -avz pi@raspberrypi.local:/usr/include sysroot/usr
    rsync -avz pi@raspberrypi.local:/usr/lib sysroot/usr

    # 配置qt,直接解压源码,不需要对源码进行任何更改,qt版本相差不大应该都可以
    ./configure -static -prefix /opt/imx6/qt-5.9.8-static -extprefix /opt/imx6/qt-5.9.8-static
    -device linux-imx7-g++
    -device-option CROSS_COMPILE=arm-linux-gnueabihf-
    -sysroot /../../../../../../home/greg/imx6/debian10sysroots
    -no-openssl -no-cups -no-iconv -qt-zlib
    -no-opengl -no-sse2 -no-xcb
    -nomake examples -nomake tests -v -opensource
    -skip qt3d -skip qtcanvas3d -skip webengine -skip qtpurchasing
    -skip qtquickcontrols -skip qtquickcontrols2 -skip qtsensors -skip qtdoc -skip qtwayland
    -confirm-license -qreal double -gstreamer 1.0
    # -static 设置静态编译,默认动态
    # 其他配置可根据实际需要增删
    # 以上文件系统也许可以用库连接代替,未测试
    # -sysroot 为目标使用的根文件系统,可从开发板直接获取相关库,这里的文件系统直接从SD卡里复制整个文件
    # 注意:此处文件系统必须保证存在,否则无法编译qt程序(需要用的里面的动态库)

    # 配置成功
    make -j8
    # 慢的电脑要20~30分钟,快的10~20分钟,再快的不到10分钟

    make install

    #运行时,开发板需要在qt安装目录中的lib建立fonts,存放字体文件
    mkdir -p /opt/imx6/qt-5.9.8-static/lib/fonts/
    cp 字体文件 /opt/imx6/qt-5.9.8-static/lib/fonts/

  • 相关阅读:
    【Flutter 实战】1.20版本更新及新增组件
    【Flutter 实战】各种各样形状的组件
    【Flutter 实战】全局点击空白处隐藏键盘
    Flutter —布局系统概述
    【Flutter 实战】17篇动画系列文章带你走进自定义动画
    lvs负载简介,原理,常见使用案例及Keepalived高可用
    02 . MongoDB复制集,分片集,备份与恢复
    Go之Casbin简介,安装,模型,存储,函数
    govendor包管理及Go项目热加载
    教你三招快速文件批量重命名方法
  • 原文地址:https://www.cnblogs.com/GregTse/p/12202303.html
Copyright © 2011-2022 走看看