1、遇到的问题
1、打包后的appimage双击运行时QLocalServer单例未生效
2、修复单例问题后,启动时有两个进程,下一个应用运行后只退出了一个进程,又新增了两个进程
3、打包后在某些机器上无法运行
2、解决方案
问题1:
猜测和appimage机制有关,查看官方文档上有一段说明是不能使用绝对路径,查看QLocalServer文档介绍说在windows上
是管道实现,linux上是文件实现,此时就猜测是QLocalServer不能在appimage上使用,但又发现通过命令行启动是正常的,通
过打日志发现调试运行和appimage运行QLocalSocket的servername是不一样的,此时就找到servername传的值是
QApplication::applicationName(),查看文档说是如果未设置时会是可执行文件名,但不能解释每次双击运行会不一样,猜测
是appimage做了什么鬼操作,导致每次双击运行会产生不一样的可执行文件,此时真相大白,只要每次调用
QApplication::setApplicationName设置一个固定的值就可以解决问题
问题2:
从网上未搜到任何相关现象,官网上也没有任何相关的介绍,只是介绍说运行时会产生两个进程,退出后会都退出,最后通过
更新appimage解决
问题3:
查看官网https://docs.appimage.org/packaging-guide/advanced/troubleshooting.html?highlight=lib
这个是appimage的一个缺陷,可以使用低版本glibC++来打包,这样全平台都可运行