Qt4静态编译和奇怪的错误,甚至在它们应该存在之前发生的事情

时间:2010-11-25 05:41:31

标签: linux compiler-construction static qt4

始终选择吸引程序员的标题。

无论如何我正在使用linux并且我使用编译了qt4.7.1库 ./configure -static -nomake demos -nomake examples -nomake tools -prefix / local / qt / qtstatic

构建和安装都很顺利,我在qt creator中设置它,所以我可以用它构建。构建任何应用程序都可以正常工作,但是当我运行应用程序时,它会给我一个错误。

QWidget:必须在QPaintDevice之前构造QApplication 中止

我理解这意味着静态对象正在尝试使用需要首先调用QApplication的类(QPaintDevice),并且由于静态对象在实际应用程序之前都已处理,这显然会失败,第一行之后我的main()是QAplication,但是我知道这没有什么区别,我的.pro确实包含了 CONFIGURE + = static,我在主程序中定义了静态,Qt4只是不喜欢我。

我该如何修复它,这样静态对象就不会像这样疯狂了。

#include <QtGui/QApplication>
#include "microbrowse.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    microbrowse w;
    w.show();
    return a.exec();
}

是主要的,但这可能并不重要,qt creator制作的所有QT应用程序的主要内容几乎相同,除了microbrowse是你工作的任何小部件的名称。小部件微浏览器是整个程序,所有这一切都是创建QApplication和维度微浏览器。

1 个答案:

答案 0 :(得分:0)

我认为类microbrowse包含一个不可能静态链接的对象。还要检查你的Qt版本。您应该在配置时添加./configure -relase-debug