查看 g++ 生成的虚函数表

需求 为了了解父子类对于虚函数表的影响,需要查看编译器生成的虚函数表。 解决 生成包含虚函数表的文件。 # g++ 8 之前 g++ -fdump-class-hierarchy vptr.cpp # g++ 8 之后 g++ -fdump-lang-class vptr.cpp 编译后,后产生一个 *.class 的文件,查看这个文件就可以看到子类的虚函数表了。 参考 c++ 查看对象内存布局 C/C++杂记:深入虚表结构 从编译器的辅助信息看c++对象内存布局 C++在gcc下的单继承,多继承,虚继承的内存布局 如何查看c++的虚函数表 C++知识积累:如何获取虚函数表以及虚函数地址

2023-04-19 · 1 min · 29 words · RamLife

'undefined reference to vtable for'

需求 今天编译的时候,报错 undefined reference to vtable for. 解决 这个报错就是说的虚函数没有找到对应的定义。经过多次仔细的检查后,发现是某个暂时没有用到的纯虚函数,在子类中没有相应的函数体。给这个函数加上 {} 就可以暂时解决了。 参考 C++ 基类继承 出现undefined reference to vtable for Cxxx错误 QT cmake编译时总显示undefined reference to `vtable for xxx‘ C++ 从命令行编译一个Qt单个文件:对vtable的未定义引用

2023-04-11 · 1 min · 29 words · RamLife