星火商店应用详情页面显示空白与应用启动预设环境变量的思考
应用详情页面显示空白,弹出警告显示应用不可用
在命令行执行星火商店,提示qtnetwork和openssl不匹配,重装了qt和openssl,结果还是一样
查了许久,在终端输入env发现如下环境变量
原来是因为自己为了偷懒,把自己给项目编译的的openssl加入了系统环境变量,由于版本太低,导致星火商店在运行时优先匹配到了低版本的openssl,导致的此问题,把此环境变量取消,万事大吉。
尤其可知随意修改全局的系统环境变量就等于在里面乱拉屎,还是临时环境变量较为稳妥。
思考
既然修改全局的系统变量不可取,那遇到这种情况该如何处理。
A应用为了方便需预加载环境变量,但是此环境变量会对B应用产生冲突,当然可以每次打开A应用的时候手动加载一下环境变量,但是此方法对懒人不太友好,我只想每次打开A应该都已经默认加载好了环境变量。
冥思苦想,突然想到Ubuntu的应用都有一个desktop文件,没有的话也可以新建一个。
.desktop文件有三个地方可以存放:
(1)/usr/share/applications,这里是根目录应用程序文件夹,个人猜测是所有用户都能看到的应用。
(2)~/.local/share/applications,个人账户目录下的应用程序文件夹。
(3)~/桌面,这个应该是切换了中文才会这么显示的。
从此文件可以看到Exec做的事情就是将程序运行起来,那意味着我只要想办法在程序运行起来,提前将我要做的事情加载完就好了。
我的文件在/usr/share/applications目录,此目录为root权限,为了不改变所有用户的启动方式,我将此文件拷贝到了~/.local/share/applications,在Exec下运行了脚本,脚本里自然可以做很多你想做的预处理的事情了。
点击此文件,选择在终端运行,在Qt的系统环境变量里便可看到已经加载好了预设的环境变量,此操作就有点类似于你在打开的终端里设置临时环境变量,只在此终端有效,不会影响到其他操作了。