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

问题描述 投票:0回答:1

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

无论如何,我使用的是linux,并且我使用编译了qt4.7.1库 ./configure -static -nomake demos -nomake示例 -nomake工具 -prefix /local/qt/qtstatic

构建和安装一切顺利,我在 qt Creator 中设置了它,这样我就可以用它进行构建。构建任何应用程序都可以正常工作,但是当我运行该应用程序时,它会给我一个错误。

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

我理解这意味着静态对象正在尝试使用需要首先调用 QApplication 的类(QPaintDevice),并且由于静态对象都是在实际应用程序之前处理的,所以这显然会失败,我的 main 之后的第一行() 是 QAplication,但是我知道这没有什么区别,我的 .pro 确实包含 CONFIGURE +=static,我在主程序中定义了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 创建者制作的所有 QT 应用程序来说,主要是几乎相同的,除了 microbrowse 是您正在使用的任何小部件的名称。小部件 microbrowse 是整个程序,它所做的只是创建 QApplication 和维度 microbrowse。

linux static qt4
1个回答
0
投票

我认为类

microbrowse
包含这样一个不可能静态链接的对象。另请检查您的 Qt 版本。您应该在配置时添加
./configure -relase
-debug

© www.soinside.com 2019 - 2024. All rights reserved.