일부 Visual C++ 코드를 Qt Creator로 가져 오려고하는데 설명 할 수없는 컴파일 오류가 발생했습니다.Qt Creator에서 "정의되지 않은 참조"오류가 발생했습니다.
// 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는 창조주 (TabSprite.cpp
에서 생성자 선언에서) 나에게이 오류를 줄 : 이것은 내 코드입니다
정의되지 않은 참조 전채 '에 :: GraphicsItem :: GraphicsItem (전채 :: GraphicsWindow *)
GraphicsItem
은 GraphicsItem.h
에 올바르게 선언되어 있으므로 컴파일러가 찾지 못하는 이유를 알지 못합니다. 아무도이 코드를 잘못 이해할 수 있습니까?
BTW : afaik 정의와 선언의 차이점은 다음과 같습니다. TabSprite.h에서 TabSprite의 ctor를 선언하고 TabSprite.cpp에서이를 정의합니다. –
나는 내 코드를 명확히했다. 나는 실제로 "선언"하고 "정의"하지 않았다. 그래도 나는 컴파일 할 코드를 얻을 수 없다. –
그리고 때로는 중요한 네임 스페이스를 사용하는 대신'네임 스페이스 애피타이저 {/ * TabSprite * /} 정의 '를 사용하는 것이 좋습니다. 그리고 : 컴파일이 아니라 링커 오류 –