始终选择能够吸引程序员的标题。
无论如何,我使用的是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。
我认为类
microbrowse
包含这样一个不可能静态链接的对象。另请检查您的 Qt 版本。您应该在配置时添加 ./configure -relase
或 -debug
。