我已经在Windows和Windows上开发了使用C ++的QT应用程序。 Ubuntu12.04。 我可以在Windows上运行我的应用程序,但我的应用程序在Ubuntu上崩溃。 所以我在gdb上运行我的应用程序并获得以下消息。
Program received signal SIGSEGV, Segmentation fault.
_GLOBAL__sub_I_SmartEditImp.cpp ()
at /home/linden/Qt5.3.1/5.3/gcc/include/QtCore/qrefcount.h:62
62 if (count != -1) // !isStatic
我无法指定错误发生的位置。 你有什么想法解决这个问题吗? 我使用QT5.3.1,QtCreator3.1.2和gcc4.6.1。 感谢。
答案 0 :(得分:0)
帮助私有类QtPrivate::RefCount
用于在所有Qt容器(包括QString
和QByteArray
)中实现写时复制习惯用法。
使用无效的Qt容器实例是导致QtPrivate::RefCount:ref()
方法崩溃的唯一原因。例如,在QString
复制构造函数或QString
分配运算符的主体的第一行中调用该方法:
QString::QString(const QString &other);
QString &QString::operator=(const QString &other);
因此,此类崩溃有三种可能的情况: