yocto吧 关注:26贴子:36
  • 4回复贴,共1

imx6 安装 yocto QT支持

只看楼主收藏回复

这个狗屁百度贴片,居然发不了。你如果正好需要也没有办法了。


IP属地:广东1楼2014-07-17 10:12回复
    整个开发环境需要 80G 的空间 虚拟机别分得太少。
    关于搭建开发环境因为不能上国外服务器,花了很长时间才搭建起开发环境。 ubuntu下 不能用root开发,关键是repo 这个工具,即使前面几步绕过了 ,但是后面还是遇到了问题
    于是,只得 单独复制了一份虚拟机,在普通账户下搭建 yocto的环境。搭建好以后,继续编译 qt5.1 。 在wandboard下载的那个rootfs 通过实验,发现几个bug。
    1、无法正常使用 gles 栅格化 Resurrect QGLWidget::renderPixmap 。通过修改qt代码最后解决。 这个qt官方网站上有人提到这个bug,然后有解决方案。
    src/opengl/qgl.cpp (103) -----
    src/opengl/qgl_p.h (1) +
    src/opengl/qgl_qpa.cpp (3) +++
    tests/auto/opengl/qgl/tst_qgl.cpp (6) --++++


    IP属地:广东2楼2014-07-17 10:15
    回复
      2、为了编译通过
      eglvivante.h 该文件 把x11前面的屏蔽了
      qxcbwindow.cpp 文件中 该函数

      #if !defined(QT_NO_SHAPE)
      移动到前面去,不然会没有定义
      在header 文件中就是在外面的
      void QXcbWindow::setOpacity(qreal level)
      {
      if (!m_window)
      return;
      quint32 value = qRound64(qBound(qreal(0), level, qreal(1)) * 0xffffffff);
      Q_XCB_CALL(xcb_change_property(xcb_connection(),
      XCB_PROP_MODE_REPLACE,
      m_window,
      atom(QXcbAtom::_NET_WM_WINDOW_OPACITY),
      XCB_ATOM_CARDINAL,
      32,
      1,
      (uchar *)&value));
      }
      3、renderPixmap 的窗体,不能重复新建,需要保存窗体句柄。下一次使用的时候,如果判断依据有了窗体,就不要new一个了。
      4、glReadPixels 最后一个数组地址,该数组不能是3个字节的必须是4个字节 pixel[4] 。x86 的opengl和这个不同


      IP属地:广东3楼2014-07-17 10:16
      回复
        /home/r/fsl-community-bsp/sources/meta-qt5/recipes-qt/qt5/qtbase.inc
        #file://Force_egl_visual_ID_33.patch \
        #file://Fix_xcb-1.9.3_compatibility.patch \
        #file://Using_glimagesink_instead_of_xvimagesink.patch \
        bitbake meta-toolchain
        sh poky-eglibc-x86_64-meta-toolchain-cortexa9hf-vfp-neon-toolchain-1.5+snapshot.sh
        $ tar xvzf qt-everywhere-opensource-src-5.1.1.tar.gz
        $ cd qt-everywhere-opensource-src-5.1.1
        $ export PATH=$PATH:/opt/poky/1.5.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi
        $ ./configure -v -dont-process -opensource -confirm-license -device imx6 -device-option CROSS_COMPILE=/opt/poky/1.5.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi- -sysroot /home/r/fsl-community-bsp/build/tmp/sysroots/wandboard-quad -prefix ~/qt5arm -platform linux-g++ -shared -no-pch -no-rpath -pkg-config -no-accessibility -no-dbus -no-icu -no-directfb -evdev -no-fontconfig -no-opengl -opengl es2 -no-eglfs -no-glib -no-gtkstyle -no-iconv -system-libjpeg -no-kms -system-libpng -no-linuxfb -no-mitshm -no-nis -openssl -qt-pcre -release -no-sm -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-tds -nomake tests -tslib -libudev -widgets -xcb -no-xcursor -no-xfixes -no-xinerama -no-xinput -no-xinput2 -no-xkb -no-xrandr -no-xrender -no-xshape -no-xsync -no-xvideo -system-zlib
        $ make -j 4
        $ make install
        eglvivante.h 该文件 把x11前面的屏蔽了
        qxcbwindow.cpp 文件中 该函数

        #if !defined(QT_NO_SHAPE)
        移动到前面去,不然会没有定义
        在header 文件中就是在外面的
        void QXcbWindow::setOpacity(qreal level)
        {
        if (!m_window)
        return;
        quint32 value = qRound64(qBound(qreal(0), level, qreal(1)) * 0xffffffff);
        Q_XCB_CALL(xcb_change_property(xcb_connection(),
        XCB_PROP_MODE_REPLACE,
        m_window,
        atom(QXcbAtom::_NET_WM_WINDOW_OPACITY),
        XCB_ATOM_CARDINAL,
        32,
        1,
        (uchar *)&value));
        }


        IP属地:广东5楼2014-07-17 10:18
        回复
          支持QT 5.5.1的qtwebkit和qtwebengine么?


          IP属地:重庆7楼2016-04-16 23:03
          回复