c++ a missing vtable error

后端 未结 3 1793
盖世英雄少女心
盖世英雄少女心 2020-12-17 15:16

I am getting a really weird error related to missing vtable for a given class constructor and destructor. Please help me to resolve this.

Undefined symbols for archi

3条回答
  •  既然无缘
    2020-12-17 16:09

    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.

提交回复
热议问题