交叉编译 qtwebengine最终编译成果

原理性请参考如下文章

安装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

-o transform_symlinks 表示转换绝对链接符号为相对链接符号
-o follow_symlinks 沿用服务器上的链接符号

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

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
在Ubuntu系统上进行交叉编译Qt5.9.6 WebEngine模块,你需要按照以下步骤进行操作: 1. 安装必要的工具和依赖项: - 安装Qt5.9.6源码包 - 安装交叉编译工具链(例如,arm-linux-gnueabihf) - 安装交叉编译所需的工具和库(例如,libssl-dev) 2. 设置交叉编译环境变量: - 打开终端,使用以下命令导出环境变量: ```shell export QT_PATH=/path/to/qt5.9.6/source export SYSROOT=/path/to/sysroot # 根据你的交叉编译工具链配置 export PATH=$SYSROOT/bin:$PATH ``` 3. 配置Qt5交叉编译环境: - 在终端中导航到Qt5源码根目录,执行以下命令: ```shell ./configure -opensource -confirm-license -release -opengl es2 -device <device> -device-option CROSS_COMPILE=<cross-compile-prefix> -sysroot $SYSROOT -prefix $QT_PATH/qt5.9.6 -v ``` 其中,`<device>`是目标设备的名称,`<cross-compile-prefix>`是交叉编译工具链的前缀。 4. 编译Qt: - 在终端中执行以下命令开始编译: ```shell make -j8 ``` 根据你的系统配置选择合适的并行编译数。 5. 编译Qt WebEngine模块: - 在终端中执行以下命令开始编译WebEngine模块: ```shell make module-qtwebengine -j8 ``` 6. 完成交叉编译: - 编译完成后,在指定的目录`$QT_PATH/qt5.9.6`下,即可找到Qt5.9.6交叉编译生成的可执行文件和库文件。 通过按照上述步骤在Ubuntu系统上进行交叉编译,你将能够成功编译Qt5.9.6的WebEngine模块,并生成相应的可执行文件和库,以便在目标设备上运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值