linux qt程序运行示例,Qt程序只运行一个实例

本文介绍了如何确保Linux上的Qt应用程序只运行一个实例。通过使用QSharedMemory进行进程间通信,防止程序崩溃后共享内存未释放导致的问题。文章提到了QtSingleApplication作为解决方案,并详细阐述了两种整合QtSingleApplication到项目中的方法,包括直接编译源代码到工程中以及编译为lib文件。此外,还强调了在发布程序时需要包含QtNetwork模块的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在我的这篇文章中使Qt程序只运行一个实例,通过QSharedMemory来实现进程间通讯,使用这种方式来是Qt程序只运行一个实例。有一天测试部的MM告诉我,她在测试的时候,程序crash掉了,再次运行程序,程序不能继续运行。

程序不能运行,显然是共享内存没有释放引起的,但是程序crash后为什么共享内存不能释放呢?于是打开Qt助手看到QSharedMemory是这样解释的:

Unix: QSharedMemory "owns" the shared memory segment. When the last

thread or process that has an instance of QSharedMemory attached to a

particular shared memory segment detaches from the segment by destroying

its instance of QSharedMemory, the Unix kernel release the shared

memory segment. But if that last thread or process crashes without

running the QSharedMemory destructor, the shared memory segment survives

the crash.

怎么可以这样?555…看来Nokia提供的QtSingleApplicationsolution的方法还是蛮好的。真是杯具丫,只好换

QtSingleApplication,下面就介绍一下我把QSingleApplication整合到自己的应用程序中去的方法一:

1.首先从的网站把Qt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值