郁闷,这是什么原因引起的
8 个解决方案
#1
你在试图创建多个QCoreApplication或QApplication对象
#2
should be only one application object
#3
根本原因是我刚说的,直接原因是下面这个(刚好开着该文件,顺便贴一下):
QCoreApplication::QCoreApplication(int &argc, char **argv)
{
init();
...
}
void QCoreApplication::init()
{
...
Q_ASSERT_X(!self, "QCoreApplication", "there should be only one application object");
QCoreApplication::self = this;
...
}
#4
英文的意思我知道啊,我的意思是,通常是什么情况会引发这个错误?我只有一个main啊!
#5
没有第二种可能性,答案就是那句英文。和你用几个main无关,只和你试图创建几个QCoreApplication或QApplication(或其他你自己派生或第三方的派生类)的实例个数有关。
不过这种东西,很容易定位吧,你不调试程序?
#6
能定位,是一个dll的接口,一调用它就会出这个错误。可这个dll不是用qt开发的啊,怎么会创建QCoreApplication或QApplication对象呢?
我是在用QTest框架做这个dll的单元测试,QTest自己会创建QApplication,只能认为这个dll也创建了,可是它并不是QT开发的啊!
我是在用QTest框架做这个dll的单元测试,QTest自己会创建QApplication,只能认为这个dll也创建了,可是它并不是QT开发的啊!
#7
比较怀疑你单元测试本身的代码有问题。
#8
QTest不一定会创建QApplication,取决于你用的哪个宏
#1
你在试图创建多个QCoreApplication或QApplication对象
#2
should be only one application object
#3
根本原因是我刚说的,直接原因是下面这个(刚好开着该文件,顺便贴一下):
QCoreApplication::QCoreApplication(int &argc, char **argv)
{
init();
...
}
void QCoreApplication::init()
{
...
Q_ASSERT_X(!self, "QCoreApplication", "there should be only one application object");
QCoreApplication::self = this;
...
}
#4
英文的意思我知道啊,我的意思是,通常是什么情况会引发这个错误?我只有一个main啊!
#5
没有第二种可能性,答案就是那句英文。和你用几个main无关,只和你试图创建几个QCoreApplication或QApplication(或其他你自己派生或第三方的派生类)的实例个数有关。
不过这种东西,很容易定位吧,你不调试程序?
#6
能定位,是一个dll的接口,一调用它就会出这个错误。可这个dll不是用qt开发的啊,怎么会创建QCoreApplication或QApplication对象呢?
我是在用QTest框架做这个dll的单元测试,QTest自己会创建QApplication,只能认为这个dll也创建了,可是它并不是QT开发的啊!
我是在用QTest框架做这个dll的单元测试,QTest自己会创建QApplication,只能认为这个dll也创建了,可是它并不是QT开发的啊!
#7
比较怀疑你单元测试本身的代码有问题。
#8
QTest不一定会创建QApplication,取决于你用的哪个宏