Недавно обнаружил новую для меня ошибку компоновщика C ++.
libfoo.so: undefined reference to `VTT for Foo'
libfoo.so: undefined reference to `vtable for Foo'
Я узнал ошибку и исправил свою проблему, но у меня все еще есть назойливый вопрос: что такое VTT?
В сторону: Для тех, кому интересно, проблема возникает, когда вы забываете определить первую виртуальную функцию, объявленную в классе. Таблица vtable входит в блок компиляции первой виртуальной функции класса. Если вы забудете определить эту функцию, вы получите ошибку компоновщика, что он не может найти vtable, а не более удобный для разработчиков не может найти функцию.