2009-07-19 11 views
3

私はQtの単純描画ウィジェットで作業しています(以下はすべて1クラス内にあります)。ヘッダファイルでは、私はQtのmocが "未定義の参照先:"エラーを引き起こしています

private: 
QPointF translateToCanvas (QPointF input); 

を定義していると私はコンパイルするたびに、私はコードで

QPointF translateToCanvas (QPointF input) { 
    return input - QPointF(CANVAS_MARGIN_X, CANVAS_MARGIN_Y); 
} 

にどこかを定義したCPPファイルで、私は

QPointF newPoint = translateToCanvas(anotherPoint); 

でこれを呼び出しますそれは私に "MyClass :: translateToCanvas(QPointF) 'への未定義の参照をエラーとして返します。これはmocが生成して実際には私の文字コードではないものの中で起こっています。

Qtでこのエラーが発生する原因は何ですか? (私はQt 4.5でQt Creatorを使用しています)

答えて

9

これはQtとは関係ありません。

QPointF translateToCanvas (QPointF input) { 
    return input - QPointF(CANVAS_MARGIN_X, CANVAS_MARGIN_Y); 
} 

は、同じ名前を持つように起こっ以外の、あなたのクラスで宣言privateメソッドとは何の関係もありませんtranslateToCanvasという名前のスタンドアロン機能を定義しています。あなたが欲しいです

QPointF MyClass::translateToCanvas (QPointF input) { 
    return input - QPointF(CANVAS_MARGIN_X, CANVAS_MARGIN_Y); 
} 
+1

ありがとうございます、魂のために4時間検索しました。 – Buron