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