ubuntu下Qt使用webenginewidgets模块的错误

本文探讨了在使用Qt的WebEngineWidgets开发过程中遇到的动态链接库问题,介绍了LD_PRELOAD环境变量的作用,并提供了环境变量设置、.desktop文件修改和脚本启动方案。寻求更便捷的解决方案和优化实践。

webenginewidgets的简单使用

用Qt自带 QtCreator 在 .pro文件中加入

QT += webenginewidgets

然后在 代码中包含头文件

#include <QWebEngineView>

加入如下代码

ui->setupUi(this);
QWebEngineView *webView = new QWebEngineView(this);
webView->load(QUrl(“http://www.baidu.com”));
webView->show();
将上面的程序进行打包,打包后出现下面的错误
在这里插入图片描述

报了一个库的文件找不到。百度了一番,找到在打开软件前先添加一个临时的环境变量

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libnss3.so

这里可以看一下关于LD_PRELOAD的介绍

LD_PRELOAD是Linux系统的一个环境变量,它可以影响程序的运行时的链接(Runtime linker),它允许你定义在程序运行前优先加载的动态链接库。这个功能主要就是用来有选择性的载入不同动态链接库中的相同函数。通过这个环境变量,我们可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的函数库。一方面,我们可以以此功能来使用自己的或是更好的函数(无需别人的源码),而另一方面,我们也可以以向别人的程序注入程序,从而达到特定的目的

这样有出现了一个问题,如果每次开机打开程序都需要设置环境变量太麻烦了。
还有一种方法的将打包程序中的.desktop的文件中将Exec改成当前程序的.appimage

Exec=env LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libnss3.so /home/se/stdesfmio.appimage

上面的办法我将/usr/share/applications/ 目录下的图标文件也更成类似的,但是显示启动失败。这样我暂时只能做了一个脚本进行启动

#!/bin/bash
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libnss3.so
./stdesfmio.appimage

那位大佬有很好的解决方法了,望不吝赐教。
以上及对自己的错误做个记录,以便以后查看

<think>好的,我现在需要解决用户在QT中遇到的“Unknown module(s) in QT: webenginewidgets错误。首先,我应该了解这个错误通常是什么原因引起的。根据用户的描述和提供的引用内容,特别是引用[1]提到了关于Qt WebKit的配置选项和编译问题,可能类似的问题也存在于Qt WebEngine模块中。 首先,检查是否安装了必要的依赖库。根据引用[1]中提到的安装libicu-devel的例子,可能需要安装与WebEngine相关的依赖项。WebEngine模块通常依赖于Chromium,所以可能需要安装如libnss3、libxss1、libxslt1-dev等库。用户可能需要根据他们的操作系统安装这些依赖。 其次,用户可能在编译Qt时没有包含WebEngine模块。引用[1]中提到了使用--no-webkit选项来禁用WebKit,类似地,如果用户在配置Qt时没有启用WebEngine,或者构建时缺少相关模块,就会出现这个错误。因此,用户需要确保在configure步骤中包含-qt-webengine或者对应的选项。 另外,引用[2]中提到的项目错误显示缺少gui和widgets模块,这可能是因为环境变量设置不正确或者构建路径有问题。同样,WebEngineWidgets模块的缺失可能也是由于Qt的安装不完整或者配置错误导致的。用户可能需要重新配置和编译Qt,确保启用了WebEngine模块。 可能的解决步骤包括: 1. 安装所有必要的依赖库。 2. 重新运行Qt的configure脚本,并确保启用WebEngine模块。 3. 重新编译和安装Qt。 4. 检查项目的.pro文件,确保正确包含所需的模块。 此外,用户可能需要参考Qt官方文档关于WebEngine的安装和配置要求,确保所有前提条件都满足。如果用户使用的是预编译的Qt版本,可能需要安装对应的WebEngine附加包。</think>针对QT编译时出现"Unknown module webenginewidgets"错误,以下是分步解决方案: ### 第一步:安装系统依赖 WebEngineWidgets模块依赖Chromium内核,需要安装以下依赖: ```bash # Ubuntu/Debian $ sudo apt-get install libnss3 libxss1 libxslt1-dev libglib2.0-0 libdbus-1-3 # Fedora/CentOS $ sudo yum install nss-devel libXScrnSaver libxslt-devel glib2 dbus ``` [^1] ### 第二步:验证Qt编译配置 检查Qt编译时是否启用了webengine模块: ```bash $ ./configure -prefix /usr/local/qt -opensource -confirm-license \ -webengine -webengine-icu -webengine-webrtc ``` 需要包含`-webengine`参数才能启用该模块 ### 第三步:清理并重新编译 若之前编译未包含webengine: ```bash $ make distclean $ ./configure ...(包含webengine参数) $ make -j$(nproc) $ sudo make install ``` ### 第四步:配置项目文件 在.pro项目文件中添加模块声明: ```qmake QT += webenginewidgets core gui widgets ``` ### 第五步:检查环境变量 确保qmake路径正确: ```bash $ which qmake /home/user/Qt/5.15.2/gcc_64/bin/qmake ``` 如果使用自定义编译的Qt,需设置PATH环境变量[^4]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值