2013-03-27 2 views
0

QT를 사용하여 기본 응용 프로그램을 만들려면 Netbeans' guide을 추적했습니다. 프로젝트가 성공적으로 빌드되었지만 설명없이 실행되지 않습니다.Netbeans 7.3과 함께 실행되는 QT 4.8 앱을 얻는 방법은 무엇입니까?

저는 MinGW 및 QT4.8 (netbeans의 가이드 링크에서 다운로드)으로 W8 x64를 실행 중입니다.

다음

는 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 실패 (종료 값 -1 073 741 819, 총 시간 : 2 초)

나는 윈도우 콘솔과 호환 모드 W7과 XP로 실행 시도

같은 결과를 얻었습니다.

어떤 아이디어? 미리 감사드립니다.

+0

궁금한 점 : Qt Creator를 사용할 때 작동합니까? –

+0

아니요 ... 동일한 동작, 동일한 종료 값입니다. – Andy

답변

0

(Qt 및 MinGW) 모든 것을 제거하고 처음부터 가이드를 다시 시작하여 문제의 원인을 찾았습니다 (버전 등에주의하십시오). 유일한 차이점은 분명히 MinGW 설치 프로그램과 별도로 MSYS1.0을 설치했기 때문입니다. 이제 모든 것이 잘 작동하고 프로젝트를 계속 진행할 수 있습니다. 도움을 주셔서 감사합니다. Muhammad Minhazul Haque!

1

코드는 정상이며 Qt Creator에서 오류없이 실행됩니다.

enter image description here

exit value -1 073 741 819는 잘못된 라이브러리 링크 또는 일치하지 않는 헤더를 사용하거나 버전을 구축하는 것을 의미한다.

+0

이 오류가 무슨 뜻인지 궁금한 점이 있다면 건물 및 연결 프로세스가 성공적으로 실행 된 이유는 무엇입니까? – Andy

+0

빌드 및 링크는 .lib 또는 .a로 컴파일하고 링크하는 것을 의미합니다. 그러나 응용 프로그램이 성공적으로 실행되는 것은 아닙니다. Netbeans에 문제가있었습니다. 프로젝트가 성공적으로 빌드되었지만 실행 파일을 실행하지 못했습니다. 나는 libstd-C++. dll과 libgcc_s_dw2-1.dll을 대체해야만했다. Qt 4.8에는 내가 생각하는 버그가 있습니다. –

+0

언급 한 dll 파일은 표준 C++ 및 gcc 파일입니다. 모든 QT 명령문에 주석을 달고 간단한 std :: cout을 추가하면 올바르게 실행됩니다. QT에서 문제가 발생한다는 것을 의미합니다 (프로그램이 QT 작성자에서 실행되지 않을 것이라는 점에 유의하십시오). 나는 이렇게 조사 할 것입니다. 그건 그렇고 당신과 같은 환경에서 테스트하기 위해, dll 파일의 버전은 무엇입니까? – Andy

관련 문제