与mingw32的Qt编译错误

时间:2013-07-16 08:35:39

标签: c++ qt mingw32

我几天开始用qt开发了。我想制作一个程序,将鼠标光标移动到我决定的某些位置,但是当我编译最简单的程序时,mingw32打印出这个错误:

error: undefined reference to `_imp___ZN15QGuiApplicationC1ERiPPci'
error: undefined reference to `_imp___ZN7QCursorC1Ev'
error: undefined reference to `_imp___ZN7QCursor6setPosEii'
error: undefined reference to `_imp___ZN15QGuiApplicationD1Ev'
error: undefined reference to `_imp___ZN15QGuiApplicationD1Ev'
release/main.o: bad reloc address 0x13 in section `.eh_frame'
collect2.exe:-1: error: error: ld returned 1 exit status

这是我的代码:

#include <QtGui/QGuiApplication>
#include <QtGui/QCursor>

int main(int argc, char *argv[])
{
    QGuiApplication a(argc, argv);
    QCursor *cur = new QCursor;
    cur->setPos(50,50);
    return 0;

    return a.exec();
}

.pro文件

QT       += core

QT       -= gui

TARGET = untitled
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp

我错了什么???我怎么解决它?

我在Win8 Pro x64上使用mingw32安装了Qt 5.1

谢谢

1 个答案:

答案 0 :(得分:2)

我认为您的项目文件错误。

所以你想要一个GUI应用程序,但你可以通过

删除GUI模块
QT       -= gui

您是否尝试使用项目启动向导创建此应用程序? 我想你可能选择了错误的应用程序类型。

修改

如果要在没有gui模块的情况下构建项目,则需要使用“ - =”运算符将其排除。默认情况下,QT包含core和gui,因此以下行将导致构建一个最小的Qt项目:

QT -= gui # Only the core module is used.

所以,你只有核心模块。 资料来源:http://qt-project.org/doc/qt-4.8/qmake-project-files.html

尝试删除

QT       -= gui

行,因为“请注意,QT默认包含core和gui模块”。见源。