Die Unterdrückung der C ++ - Vtable-Generierung kann in MSVC mit dem __declspec(novtable)
-Attribut erfolgen. Es scheint jedoch, dass kein äquivalentes Attribut für die GNU C ++ - Compiler. Tatsache ist, dass das Verlassen der VTables für rein virtuelle Klassen unnötigerweise in __cxa_abort()
und vielen anderen Links erfolgt, und ich möchte vermeiden, dass dies passiert, weil ich für ein eingebettetes System programmiere. Also, was soll ich tun?
Das Compiler-Flag -fno-rtti
stoppt die Generierung der Laufzeit-Information.
Nach meiner Erfahrung mit C ++ auf Embedded-Plattformen hat dies verhindert, dass Vtable-Compiler-Fehler auftreten, was darauf hindeutet, dass sie nicht erstellt werden können (und folglich funktionieren virtuelle Funktionen nicht).
Tags und Links c++ gcc g++ vtable virtual-functions