Qt Creatorに動作中のVisual C++コードをインポートしようとしましたが、説明できないコンパイルエラーが発生しました。これは私のコードです:Qt Creatorで "Undefined reference"エラーが発生しました
// TabSprite.h
#include <GraphicsItem.h>
namespace appetizer {
class TabSprite : public GraphicsItem {
public:
TabSprite(GraphicsWindow* parentWindow);
}
// TabSprite.cpp
#include <TabSprite.h>
using namespace appetizer;
TabSprite::TabSprite(GraphicsWindow* parentWindow): GraphicsItem(parentWindow) {
}
とQt Creatorは(TabSprite.cpp
でコンストラクタ宣言で)私は、このエラーを与える:「前菜:: GraphicsItemへ
未定義の参照:: GraphicsItem(appetizer :: GraphicsWindow *)
GraphicsItem
はGraphicsItem.h
で正しく宣言されているので、なぜコンパイラがそれを見つけられないのかわかりません。誰でもこのコードで何が間違っているのかを見ることができますか?
BTW:afaik定義と宣言の違いは次のとおりです。TabSprite.hでTabSpriteのctorを宣言し、TabSprite.cppでそれを定義します。 –
私は自分のコードを明確にしました - 私は確かに "宣言された"と "定義されていない"と書くべきです。私はまだコードをコンパイルすることはできません。 –
そして、ときには重大なことがある 'namespace'を使うのではなく、' namespace appetizer {/ * TabSprite * /}の定義 'を使うのがよい方法だと思います。そして:それはコンパイルではなくリンカーエラー –