2016-01-25 156 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與其他目標文件鏈接起來。

相關問題