0

Netbeans のガイドに従って、QT で基本的なアプリケーションを作成しました。プロジェクトは正常にビルドされますが、説明なしで実行に失敗します。

MinGW と QT4.8 で W8 x64 を実行しています (netbeans のガイド リンクからダウンロード)。

C++ ファイルのコードは次のとおりです (大部分は自動的に作成されます)。

main.cpp :

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

int main(int argc, char *argv[]) {
    // initialize resources, if needed
    // Q_INIT_RESOURCE(resfile);

    QApplication app(argc, argv);

    // create and show your widgets here
    UI_main main_w;
    main_w.show();

    return app.exec();
}

UI_main.h :

#ifndef _UI_MAIN_H
#define _UI_MAIN_H

#include "ui_UI_main.h"

class UI_main : public QMainWindow {
    Q_OBJECT
public:
    UI_main();
    virtual ~UI_main();
private:
    Ui::UI_main widget;
};

#endif  /* _UI_MAIN_H */

ui_UI_main.h:

#ifndef UI_UI_MAIN_H
#define UI_UI_MAIN_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QGroupBox>
#include <QtGui/QHeaderView>
#include <QtGui/QMainWindow>
#include <QtGui/QMenuBar>
#include <QtGui/QStatusBar>
#include <QtGui/QWidget>

QT_BEGIN_NAMESPACE

class Ui_UI_main
{
public:
    QWidget *centralwidget;
    QGroupBox *groupBox;
    QMenuBar *menubar;
    QStatusBar *statusbar;

    void setupUi(QMainWindow *UI_main)
    {
        if (UI_main->objectName().isEmpty())
            UI_main->setObjectName(QString::fromUtf8("UI_main"));
        UI_main->resize(800, 600);
        centralwidget = new QWidget(UI_main);
        centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
        groupBox = new QGroupBox(centralwidget);
        groupBox->setObjectName(QString::fromUtf8("groupBox"));
        groupBox->setGeometry(QRect(300, 210, 120, 80));
        UI_main->setCentralWidget(centralwidget);
        menubar = new QMenuBar(UI_main);
        menubar->setObjectName(QString::fromUtf8("menubar"));
        menubar->setGeometry(QRect(0, 0, 800, 21));
        UI_main->setMenuBar(menubar);
        statusbar = new QStatusBar(UI_main);
        statusbar->setObjectName(QString::fromUtf8("statusbar"));
        UI_main->setStatusBar(statusbar);

        retranslateUi(UI_main);

        QMetaObject::connectSlotsByName(UI_main);
    } // setupUi

    void retranslateUi(QMainWindow *UI_main)
    {
        UI_main->setWindowTitle(QApplication::translate("UI_main", "UI_main", 0, QApplication::UnicodeUTF8));
        groupBox->setTitle(QApplication::translate("UI_main", "GroupBox", 0, QApplication::UnicodeUTF8));
    } // retranslateUi

};

namespace Ui {
    class UI_main: public Ui_UI_main {};
} // namespace Ui

QT_END_NAMESPACE

#endif // UI_UI_MAIN_H

UI_main.cpp :

#include "UI_main.h"

UI_main::UI_main() {
    widget.setupUi(this);
}

UI_main::~UI_main() {
}

UI_main.ui には、QTDesigner で作成されたグループ ボックスのみが含まれます。

エラーメッセージ:

RUN FAILED (終了値 -1 073 741 819、合計時間: 2 秒)

Windows コンソールと互換モード W7 および XP で実行してみましたが、結果は同じでした。

何か案は ?事前に感謝します。

4

2 に答える 2

1

コードは問題なく、Qt Creator でエラーなく実行されます。

ここに画像の説明を入力

exit value -1 073 741 819間違ったライブラリ リンクを使用しているか、ヘッダーまたはビルド バージョンが一致していないことを意味します。プロジェクト リンカー、そのバージョン、アーチなどを確認してください。

于 2013-03-31T18:53:11.567 に答える
0

すべて(QtとMinGW)をアンインストールし、ガイドを最初からやり直して(バージョンなどに注意して)ようやく問題の原因を突き止めました。(どうやら) 唯一の違いは、MSYS1.0 を MinGW インストーラーとは別にインストールしたことです。これですべてがうまく機能し、プロジェクトを続行できます。ムハンマド・ミンハズル・ハケ、助けてくれてありがとう!

于 2013-04-10T09:02:37.033 に答える