QT5.12.2移植到linux

本文详述了如何将QT 5.12.2源码编译并移植到Linux系统,包括安装交叉编译工具、3D依赖库的编译、Ubuntu PC的交叉编译配置、板子运行环境的搭建以及程序的开机自启动设置。主要涉及QT源码的下载、配置、编译以及环境变量的设置等关键步骤。

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值