2016-01-25 131 views
0

当我从main调用新的TerrainClass()时出现以下错误,尝试了几个小时来修复它,请帮助。错误LNK2019:无法解析的外部符号类

error LNK2019: unresolved external symbol "public: __thiscall TerrainClass::TerrainClass(void)" ([email protected]@[email protected]) referenced in function "void __cdecl init(void)" ([email protected]@YAXXZ) 

GLDrawObject.h

#pragma once 

class GLDrawObject 
{ 

}; 

Terrain.cpp

#pragma once 

TerrainClass::TerrainClass() : GLDrawObject() 
{ 

} 

Terrain.h

#pragma once 

#include "GLDrawObject.h" 

class TerrainClass : public GLDrawObject 
{ 
public: 
    TerrainClass(); 
}; 
+0

@DavideSpataro:编译器为'GLDrawObject'生成一个默认构造函数。 – ildjarn

+1

可能重复[什么是未定义的引用/无法解析的外部符号错误,以及如何解决它?](http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-符号错误和如何-DO-修复) –

回答

1

首先,你应该Terrain.cpp如下:

#include "Terrain.h" 

TerrainClass::TerrainClass() : GLDrawObject() 
{ 

} 

其次,你会得到一个链接器错误,而不是编译器错误;一旦编译完成,您需要将Terrain.o与其他目标文件链接起来。

相关问题