Unterklassenklasse aus gemeinsam genutzter Bibliothek, die mit -fno-rtti kompiliert wurde
Ich versuche, eine Unterklasse aus einer gemeinsam genutzten Bibliothek zu erstellen, die mit -fno-rtti kompiliert wurde. Leider benötigen andere Bibliotheken in meiner Codebasis -frtti. Infolgedessen erhalte ich Verbindungsfehler, weil die Superklasse keine typeinfo Struktur hat.
Fehler in einer normalen Zusammenstellung erhalten:
out.o: in function typeinfo for MyClass:myclass.cpp(.data.rel.ro.<cpp magic>): error: undefined reference to 'typeinfo for NetlinkListener'
Die Klasse, die ich unterordnen möchte, ist eine Android-Klasse in libsysutils (ein wenig nach Leerzeichen durchsucht):
class NetlinkListener : public SocketListener {
char mBuffer[64 * 1024];
int mFormat;
public:
static const int NETLINK_FORMAT_ASCII = 0;
static const int NETLINK_FORMAT_BINARY = 1;
NetlinkListener(int socket);
NetlinkListener(int socket, int format);
virtual ~NetlinkListener() {}
protected:
virtual bool onDataAvailable(SocketClient *cli);
virtual void onEvent(NetlinkEvent *evt) = 0;
};
Mein Stub sieht so aus:
class MyClass: public NetlinkListener {
public:
MyClass();
virtual ~MyClass();
int start();
int stop();
protected:
virtual void onEvent(NetlinkEvent *evt);
};
Alle Methoden in MyClass sind implementiert (als leere Stubs)
Ich kann die gemeinsam genutzte Bibliothek -frtti nicht kompilieren. Gibt es eine Möglichkeit, dies zu umgehen?