今天编译一个程序需要使用虚函数的类,想探索一下虚函数表的结构,结果总是在链接的时候报错如下:
undefined reference to `vtable for __cxxabiv1::__class_type_info'
编译命令是: gcc virtualtable.cpp -o virtualtable
经过探索,原来是在链接的时候,需要使用C++的库,而默认是不使用的,所以必须添加-lstdc++编译选项,才可以。也就是编译命令应该改为: gcc -lstdc++ virtualtable.cpp -o virtualtable,这样就可以编译通过了。