Found it,,trying with the sample, here is an exmaple.
class Shape{
public:
virtual int areas();
virtual void display();
virtual ~Shape(){};
};
The compiler complained
Undefined symbols for architecture x86_64:
"typeinfo for Shape", referenced from:
typeinfo for trian in main_file.o
"vtable for Shape", referenced from:
Shape::Shape() in main_file.o
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [cpp_tries] Error 1enter code here
The modification is empty or any inline content inside {} next to the virtual function
class Shape{
public:
virtual int areas(){};
virtual void display(){};
virtual ~Shape(){};
};
Basically, its not finding the function definition for the non-inline virtual functions.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…