Linux APPImage打包后遇到的坑

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++来打包,这样全平台都可运行

你可能感兴趣的:(C++)