g++ -Wall ./interface.cpp ./main.cpp -o ./main
всё нормально. Но если делать
g++ -Wall -c ./main.cpp -o ./main.o
а потом
g++ ./main.o -o ./main
линкер начинает орать, что ссылка на деструктор базового интерфейса не определена:
./main.o(.text+0x2eb):main.cpp: undefined reference to `IBase::~IBase()' ./main.o(.text+0x315):main.cpp: more undefined references to `IBase::~IBase()' follow
Что нужно сказать g++ на втором этапе, чтобы он заткнулся?