2025年交叉编译 qtwebengine最终编译成果

交叉编译 qtwebengine最终编译成果原理性请参考如下文章 安装 python 环境 新的 qt 版本加入了 python 的支持 sudo apt get install python sudo apt get install python dev sudo apt get install python pip 树莓派学习 qt5 交叉编译 armv8 64 位

大家好,我是讯享网,很高兴认识大家。

原理性请参考如下文章

安装python环境(新的qt版本加入了python的支持):
sudo apt-get install python
sudo apt-get install python-dev
sudo apt-get install python-pip

树莓派学习::qt5交叉编译(armv8 64位)._dieju8330的博客-CSDN博客_armv8 qt

这里对上**补充

QT5.13.0 的./configure参数解释(最新版本)_有点甜0612的博客-CSDN博客

QT5.6编译./configure参数的详细解释_明卿的博客-CSDN博客

pkgconfig使用https://www.jianshu.com/p/0faea1f431ec

设置连接库路径 

export LD_LIBRARY_PATH=/mnt/usr/lib/aarch64-linux-gnu:/mnt/lib/aarch64-linux-gnu:/mnt/usr/lib:/mnt/usr/share/:/mnt/usr/local/lib/:/mnt/usr/lib/openmpi/lib/

注意:不设置目录连接库路径,编译出的qmake工具生成的Makefile文件中的LFLAGS选型 需要各个项目的pro使用QMAKE_LFLAGS单独配置。否则无法连接。

编译项配置

#!/bin/bash ./configure \ -prefix /root/qt/arm_lib \ -extprefix /root/qt/arm_lib \ -sysroot /mnt \ -xplatform linux-aarch64-gnu-g++ \ -pkg-config \ -release \ -opensource \ -confirm-license \ -icu \ -tslib \ -opengl \ -alsa \ -pulseaudio \ -no-mirclient \ -no-slog2 \ -qt-xcb \ -qt-freetype \ -qt-harfbuzz \ -qt-pcre \ -qt-zlib \ -qt-libpng \ -qt-libjpeg \ -qt-xkbcommon-x11 

讯享网

 -sysroot 表示目标机的文件系统,交叉编译中的编译、连接需要目标机的依赖头文件和动态库

交叉编译中的 --sysroot 等等在编译时的作用 - 微信公众号--共鸣圈 - 博客园

制作文件系统建议使用sshfs 

Ubuntu - sshfs 远程服务器目录挂载工具 - AI备忘录

挂载命令如下

sudo sshfs -o transform_symlinks -o follow_symlinks -o allow_other,default_permissions tyzc@192.168.35.157:/ /mnt

qtwebengine模块编译

环境库准备:

Ubuntu20.04编译QT5.14的qtwebengine过程,支持Mp4多媒体播放_vincehaha的博客-CSDN博客_ubuntu编译qtwebengine

当然装基础库也可将要的库写到一起格式如下

sudo apt-get install   库1  库2,这里做的目的提供安装效率。安装库不要犹豫,能安装则安装,毕竟减少排查的花费的时间。

sudo apt-get install bison build-essential gperf flex ruby python libasound2-dev libbz2-dev libcap-dev libcups2-dev libdrm-dev libegl1-mesa-dev libnss3-dev libpci-dev libpulse-dev libudev-dev libxtst-dev gyp ninja-build libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libfontconfig1-dev libxss-dev libwebp-dev libjsoncpp-dev libopus-dev libminizip-dev libavutil-dev libavformat-dev libavcodec-dev libevent-dev libdbus-1-dev qtdeclarative5-private-dev qtbase5-private-dev

缺少对应的库按照如下寻找:

libm.a和libm.so怎么装? - Ubuntu中文论坛

二次梳理rk3399 linux ubuntu平台缺失库   

讯享网sudo apt-get install libc6-dev sudo apt-get install libdbus-1-dev sudo apt-get install libudev-dev sudo apt-get install libdlm-dev sudo apt-get install libglib2.0-dev sudo apt-get install libdouble-conversion-dev sudo apt-get install libssl1.0-dev sudo apt-get install libbluetooth-dev sudo apt-get install libasound2-dev sudo apt-get install libopenal-dev sudo apt-get install libatspi2.0-dev sudo apt-get install libgegl-dev sudo apt-get install libxi-dev sudo apt-get install libgbm-dev sudo apt-get install libatspi2.0-dev sudo apt-get install libegl1-mesa-dev sudo apt-get install libinput-dev sudo apt-get install libmtdev-dev sudo apt-get install libxkbcommon-dev sudo apt-get install libcups2-dev sudo apt-get install libgypsy-dev sudo apt-get install libgstreamer1.0-dev sudo apt-get install libgstreamer0.10-dev sudo apt-get install roger-router-cli sudo apt-get install ninja-build sudo apt-get install libopus-dev sudo apt-get install libwebp-dev sudo apt-get install libfreetype6-dev sudo apt-get install libharfbuzz-dev sudo apt-get install libfontconfig1-dev sudo apt-get install libjpeg9-dev / sudo apt-get install libjpeg62-dev sudo apt-get install libpng12-dev sudo apt-get install libxcb1-dev sudo apt-get install libgl-dev sudo apt-get install libwayland-dev sudo apt-get install libgtk-3-dev sudo apt-get install libraspberrypi-dev sudo apt-get install libx11-xcb-dev sudo apt-get install libdrm-dev sudo apt-get install libxcb-glx0-dev sudo apt-get install freetds-dev sudo apt-get install libassimp-dev sudo apt-get install libre2-dev

运行之后,Qt本身会检测你当前环境是否能满足对应模块要求,会产生一个config.log文件如下: 想问这个终端工具叫什么请细细看下图 可以看到哦


讯享网

学会看这个文件 要减少你搜索的时间。。。。。。。

         上图编译命令是g++不通过, 十有八九是你没有安装库,当然你可能安装了当时编译时默认搜索的路径 感知不到。查看编译器头文件默认路径如下:

echo 'main(){}'|aarch64-linux-gnu-g++ -E -v -

找不到头文件库文件的 可能都是不在对应的路径下。

       如果你是交叉编译,可以先使用本地编译器g++验证一下是否能编译 ,证明本机上有对应的头文件只要你cp一下到对应路径即可,若是库找不到,请在arm平台上找。千万记住。

讯享网apt-get install libre2-dev

上命令是解决 re2的缺失

ICU二进制库 

https://github.com/unicode-org/icu/releases

https://doc.qt.io/qt-5/windows-requirements.html

Compiling-ICU-with-MinGW - Qt Wiki

编译命令

./runConfigureICU -h ./runConfigureICU Linux/gcc make make install

默认安装到/usr/local  需要移动到/usr下/bin、include、lib 请仔细 涉及到 pkgconfig 测试发现涉及的库 55 70 68版本

编译完成,Qt还是检测没有icu库,查看config.log有如下错误

该函数所在的库 -licui18n一看没有软连接 这样写实际系统认识的库名称为libicui18n.so。坑逼。。。。。我浪费了一个小时啊

交叉编译 qtwebengine最终编译成果 

配置环境宿主机编译环境

OSError: [Errno 2] No such file or directory
安装以下几个库:
apt-get install gperf flex bison 

编译命令

讯享网目录/qmake -o Makefile qtwebengine.pro

 单独设置两个环境变量

单独编译模块由于没有configure文件,依赖的头文件/库都得通过pkg-config寻找

export PKG_CONFIG_LIBDIR=/mnt/usr/lib/pkgconfig:/mnt/usr/share/pkgconfig:/mnt/usr/lib/aarch64-linux-gnu/pkgconfig:/mnt/usr/lib/openmpi/lib/pkgconfig:/mnt/usr/local/lib/pkgconfig export PKG_CONFIG_SYSROOT_DIR=/mnt

这里会给出明确的提示需要什么。可以根据具体提示下载源码包或者使用apt-get install命令( 优先选择)。

这里给一个排除依赖库找不到的方法

这里要主要PKG_CONFIG_LIBDIR和目标机上有所不同了。

export PKG_CONFIG_LIBDIR=/mnt/usr/lib/pkgconfig:/mnt/usr/share/pkgconfig:/mnt/usr/lib/aarch64-linux-gnu/pkgconfig:/mnt/usr/lib/openmpi/lib/pkgconfig:/mnt/usr/local/lib/pkgconfig

小讯
上一篇 2025-02-27 12:11
下一篇 2025-03-22 09:52

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/39336.html