当前位置:   article > 正文

QT5.12.2移植到linux_qtbase-everywhere-src-5.12.2

qtbase-everywhere-src-5.12.2

Qt项目环境搭建及编译

一. QT 5.12.2 源码编译

1. 安装交叉编译工具:

a) 将poky-glibc-x86_64-core-image-weston-aarch64-toolchain-2.4.2.sh 拷贝到电脑 ~/workspace 目录下, cp poky-glibc-x86_64-core-image-weston-aarch64-toolchain-2.4.2.sh ~/workspace

b) 运行安装 ./ poky-glibc-x86_64-core-image-weston-aarch64-toolchain-2.4.2.sh ,脚本会自动将交叉编译工具安装到电脑的 /opt/poky/ 目录。

c) 安装成功后,执行命令检查是否成功
source /opt/poky/2.4.2/environment-setup-aarch64-poky-linux

  1. 将qt-everywhere-src-5.12.2.tar.xz 源码拷贝到电脑的 ~/workspace 目录下
    cp qt-everywhere-src-5.12.2.tar.xz ~/workspace
    源码可以在官网上下载

  2. 解压源码压缩包 tar –xvf qt-everywhere-src-5.12.2.tar.xz –C .

  3. 该项目使用的是H3 的板子,所以进入源码的根目录
    cd qt-everywhere-src-5.12.2/qtbase/mkspec/device/
    cp -r linux-rcar-m3-g++ linux-rcar-h3-g++
    项目不需要qtwayland模块,可以直接删除,并且如果不删除会导致编译不过,
    具体不知道什么原因,
    mv qtwayland/ …/

  4. 将build.sh 脚本文件拷贝到 源码的根目录 并执行脚本
    a) cp build.sh ~/workspace/qt-everywhere-src-5.12.2/
    b) ./build.sh
    c) 如果脚本没有权限 执行 chmod a+x build.sh

  5. 在源码的根目录 执行 sudo ./build.sh

  6. Build 成功后,执行sudo make

  7. Make 成功后,执行 sudo make install

  8. 以上执行成功后,会在build.sh 文件中 -extprefix 指定的目录下生成 qt库,也就是/usr/local/embedded/qtEmbedded_5.12.2/

  9. 由于该项目需要用到camer,但是编译时没有将gstream库链接,需要手动拷贝,首先先找到gstream库的所在目录,实际gsstream库均在交叉编译目录中
    进入交叉编译目录 cd /opt/poky/2.4.2/
    find ./ –name gstream
    然后将查找到的所以库拷贝到生成的qt目录即:/usr/local/embedded/qtEmbedded_5.12.2/lib/

  10. 然后将 交叉编译目录库也拷贝到生成的qt目录。
    cp /opt/poky/2.4.2/sysroots/aarch64-poky-linux/usr/lib/ /usr/local/embedded/qtEmbedded_5.12.2/lib/
    因为生成的qt是板子的QT运行环境,如果不添加会导致程序无法编译/无法运行。

  11. 将生成的整个embedded目录打包压缩。
    sudo tar –czvf embedded.tar.gz embedded/

Note:目前build.sh文件的配置没有进行精细的裁剪,并且从windows拷贝到ubuntu可能会有文件格式错误,需要进入命令行模式,输入 set ff=unix ,都会导致不能编译.
附build.sh 脚本内容:
#!/bin/bash
./configure
-v -opensource -confirm-license -silent -pkg-config
-release -shared -make libs
-system-zlib -system-libjpeg -system-libpng -widgets
-no-dbus -opengl es2 -libudev -evdev -accessibility -openssl-linked
-qt-pcre -pulseaudio
-no-pch -no-rpath -no-alsa -no-cups -no-fontconfig -no-harfbuzz -no-mtdev
-no-tslib
-no-glib -no-iconv -no-icu -no-openvg -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
-no-xkb -no-xkbcommon
-optimized-qmake
-no-xcb -no-directfb -no-linuxfb
-nomake tests -nomake examples -nomake tools
-prefix /usr/local/embedded/qtEmbedded_5.12.2
-extprefix /usr/local/embedded/qtEmbedded_5.12.2
-sysroot /opt/poky/2.4.2/sysroots/aarch64-poky-linux
-device linux-rcar-h3-g++
-device-option CROSS_COMPILE=/opt/poky/2.4.2/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-

二. 3D依赖库编译

  1. ogl-runtime 的编译和源码下载官网均有提供
    可以参考Building Qt 3D Studio OpenGL Runtime for Embedded Linux
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号