ubuntu下Qt使用webenginewidgets模块的错误

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

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

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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值