0

私は数日から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をインストールしました

ありがとうございました

4

1 に答える 1

2

プロジェクトファイルが間違っていると思います。

したがって、GUI アプリケーションが必要ですが、次の方法で GUI モジュールを削除します。

QT       -= gui

プロジェクト開始ウィザードでこのアプリケーションを作成してみましたか? 間違った種類のアプリケーションを選択した可能性があると思います。

編集

gui モジュールを使用せずにプロジェクトをビルドする場合は、「-=」演算子で除外する必要があります。デフォルトでは、QT にはコアと 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モジュールが含まれていることに注意してください」からです。ソースを参照してください。

于 2013-07-16T08:44:32.883 に答える