2012-02-14 17 views
1

プログラムをコンパイルすると、ld returned 1 exit statusエラーが発生します。ここでは、コード(main.cppに)は次のとおりです。Qtの作成者でcollect2:ldが1つの終了ステータスを返しました

#include <QtGui/QApplication> 
#include <QPushButton> 
#include <QHBoxLayout> 
#include <QLineEdit> 
#include "widget.h" 

int main(int argc, char *argv[]) 
{ 
QApplication app(argc, argv); 

QPushButton *okayButtom = new QPushButton("Okay"); 

QMainWin *mainWin = new QMainWin("Say Pig!"); 
QHBoxLayout *Hbox = new QHBoxLayout; 
QLineEdit *inputBox = new QLineEdit; 


mainWin->setWindowTitle("Hello, Pig!"); 
Hbox->addWidget(inputBox); 
Hbox->addWidget(okayButtom); 

mainWin->setLayout(Hbox); 
mainWin->show(); 

return app.exec(); 
} 

、これは

widget.h
#ifndef WIDGET_H 
#define WIDGET_H 

#include <QtGui> 

class QMainWin : public QWidget 
{ 
Q_OBJECT 
private: 
QString WinTitle; 
public: 
QMainWin(const QString &title, QWidget *parent = 0):WinTitle(title) 
{ 
    this->setWindowTitle(WinTitle); 
} 

~QMainWin(); 
}; 

#endif // WIDGET_H 

である私は、私が唯一のcppソースファイルを使用して、UIファイルを使用していませんでした。

+0

は、あなたが「出力をコンパイル」ペインからすべてを貼り付けることができます読んで?そこに役立つエラーメッセージがあるかもしれません。 –

+0

ヒント:自分のクラスに大文字のQと大文字の別の名前で始まる名前を決して与えないでください。これはQtの大会です。あなたはある時点で名前の衝突を覚悟しなければなりません。それはあなたのコードを見ている人にとっても非常に混乱します。 –

+0

主な問題はQ_OBJECTマクロです。それを除く。私は正しい? –

答えて

2
  • デストラクタの本体を定義するか、宣言を削除する〜QMainWin();
  • マクロを削除します。Q_OBJECT;
  • QWidget(parent)を コンストラクタの初期化リストに追加します。

このhttp://doc.trolltech.com/4.3/tutorial-t4.html

関連する問題