006 - 编译 QtWebEngine

编译 QtWebEngine

前言

在之前的文章《Linux 安装 Qt》中,我说了一句 QtWenEngine 模块不好编译,暂时用不到就不管,可没想到苍天饶过谁,这么快就需要用 QtWenEngine 了,能怎么办,编呗,接着编……

源码下载

之前的 qt 源码里面有 webengine 的源码

编译安装

根据官方文档,先安装依赖库;根据官方推荐安装的,咱也不知道对不对,主要是这玩意太难编译了,就宁可多装一千,不能少装一个,全都要,还是不能全都要,不然拿到其他机器上会有问题 😢

# 官网推荐的
sudo apt install bison build-essential gperf flex nodejs\
     libasound2-dev libcups2-dev libdrm-dev libegl1-mesa-dev\
     libnss3-dev libpci-dev libpulse-dev libudev-dev\
     libxtst-dev gyp ninja-build

# 官网说的是ubuntu20.04+额外的;但是我不想全部安装
# 银河麒麟V10以及ubuntu20.4实测前4个必须得装
sudo apt install libssl-dev libxcursor-dev libxcomposite-dev\
     libxrandr-dev libxdamage-dev libfontconfig1-dev libxss-dev\
     libsrtp0-dev libwebp-dev libjsoncpp-dev libopus-dev\
     libminizip-dev libavutil-dev libavformat-dev libvpx-dev\
     libavcodec-dev libevent-dev libsnappy-dev libre2-dev\
     libprotobuf-dev protobuf-compiler

#这是银河麒麟V10以及ubuntu20.4实测必须装的
sudo apt install bison build-essential gperf flex libasound2-dev\
     libcups2-dev libdrm-dev libegl1-mesa-dev libnss3-dev libpci-dev\
     libpulse-dev libudev-dev nodejs libxtst-dev gyp ninja-build\
     libssl-dev libxcursor-dev libxcomposite-dev libxrandr-dev
     
###########################################
# 拆分版,跟上面一样的
###########################################
sudo apt install bison
sudo apt install build-essential
sudo apt install gperf
sudo apt install flex
sudo apt install libasound2-dev
sudo apt install libcups2-dev
sudo apt install libdrm-dev
sudo apt install libegl1-mesa-dev
sudo apt install libnss3-dev
sudo apt install libpci-dev
sudo apt install libpulse-dev
sudo apt install libudev-dev
sudo apt install nodejs
sudo apt install libxtst-dev
sudo apt install gyp
sudo apt install ninja-build
# ubuntu20.04+额外的;银河麒麟V10以及ubuntu20.4实测前4个必须得装
sudo apt install libssl-dev
sudo apt install libxcursor-dev
sudo apt install libxcomposite-dev
sudo apt install libxrandr-dev
sudo apt install libxdamage-dev
sudo apt install libfontconfig1-dev
sudo apt install libxss-dev
sudo apt install libsrtp0-dev
sudo apt install libwebp-dev
sudo apt install libjsoncpp-dev
sudo apt install libopus-dev
sudo apt install libminizip-dev
sudo apt install libavutil-dev
sudo apt install libavformat-dev
sudo apt install libavcodec-dev
sudo apt install libevent-dev
sudo apt install libvpx-dev
sudo apt install libsnappy-dev
sudo apt install libre2-dev
sudo apt install libprotobuf-dev
sudo apt install protobuf-compiler

开始编译

# 清掉以前的缓存
rm config.cache
# 这次不skip webengine了
./configure -prefix /opt/qt-5.12.10 -qt-xcb -fontconfig -system-freetype \
            -opensource -confirm-license -nomake tests -nomake examples
cd qtwebengine
../qtbase/bin/qmake qtwebengine.pro
make -j$(nproc)
sudo make install

我在国产 FT2000/4 处理器上大概花了5个小时的样子吧

编译过程中可能遇到的问题

fatal error:Killed signal terminated program cc1plus

内存不够了,加虚拟内存,请参考《Linux 创建交换文件 swapfile》

参考文档

  1. QtDoc - Building Qt Sources

  2. QtWiki - QtWebEngine/How_to_Try


由于个人水平有限,文中若有不合理或不正确的地方欢迎指出改正

若文中个人文章链接打不开,请在站内寻找同名文章

文章可能更新不及时,请以个人博客处文章为准

编译 QtWebEngine 需要以下几个步骤: 1. 安装必要的依赖项 在 Ubuntu 上,可以使用以下命令安装 QtWebEngine 的依赖项: ``` sudo apt-get install build-essential libssl-dev libglib2.0-dev libnss3-dev libasound2-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxrandr-dev libxtst-dev libdbus-1-dev libfontconfig1-dev libcap-dev libxt-dev libpulse-dev libudev-dev libpci-dev libicu-dev libsqlite3-dev libxslt1-dev libbz2-dev libgcrypt-dev libpci-dev libdrm-dev libgudev-1.0-dev libegl1-mesa-dev libatk-bridge2.0-dev libatspi2.0-dev libepoxy-dev libwebp-dev libopus-dev libvpx-dev libevent-dev ``` 在 Fedora 上,可以使用以下命令安装 QtWebEngine 的依赖项: ``` sudo dnf install gcc-c++ openssl-devel glib2-devel nss-devel alsa-lib-devel libXcomposite-devel libXcursor-devel libXdamage-devel libXrandr-devel libXtst-devel dbus-devel fontconfig-devel libcap-devel libX11-devel libX11-xcb-devel libxcb-devel libXext-devel libXfixes-devel libgcrypt-devel libdrm-devel glib2-devel gobject-introspection-devel gudev-devel mesa-libEGL-devel mesa-libGL-devel mesa-libGLU-devel pulseaudio-libs-devel systemd-devel icu-devel sqlite-devel libxslt-devel bzip2-devel libpng-devel libjpeg-turbo-devel libwebp-devel opus-devel libvpx-devel libevent-devel ``` 2. 下载 Qt 源代码并配置 从 Qt 的官方网站上下载 Qt 的源代码。下载完成后,解压缩源代码文件并进入源代码目录。 接着,运行以下命令,对 Qt 进行配置: ``` ./configure -prefix /usr/local/Qt -opensource -confirm-license -nomake examples -nomake tests -no-pch -no-icu -webengine-proprietary-codecs ``` 其中,`-prefix` 选项指定 Qt 的安装路径,`-opensource` 选项表示使用开源版本的 Qt,`-confirm-license` 选项表示确认许可协议,`-nomake examples` 和 `-nomake tests` 选项表示不编译 Qt 的示例程序和测试程序,`-no-pch` 选项表示禁用预编译头文件,`-no-icu` 选项表示不使用 ICU 库,`-webengine-proprietary-codecs` 选项表示启用 QtWebEngine 的专有视频和音频编解码器。 3. 编译并安装 Qt 运行以下命令,编译 Qt 并安装到指定的路径: ``` make -j$(nproc) sudo make install ``` 其中,`-j` 选项表示使用多进程编译,可以加快编译速度。 4. 编译 QtWebEngine 进入 QtWebEngine 的源代码目录,运行以下命令,编译 QtWebEngine: ``` cd qtwebengine qmake make -j$(nproc) ``` 编译完成后,在 `qtwebengine/src/core/release` 目录下可以找到 `libQt5WebEngineCore.so` 等库文件和 `QtWebEngineProcess` 可执行文件。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值