Klasa podklasy z biblioteki współdzielonej skompilowanej z -fno-rtti
Próbuję podklasy ze współdzielonej biblioteki, która została skompilowana z -fno-rtti. Niestety inne biblioteki w mojej bazie kodu wymagają -frtti. W rezultacie otrzymuję błędy łącza, ponieważ nadklasa nie ma struktury informacji o typie.
Błąd odebrany w normalnej kompilacji:
out.o: in function typeinfo for MyClass:myclass.cpp(.data.rel.ro.<cpp magic>): error: undefined reference to 'typeinfo for NetlinkListener'
Klasą, którą chcę podklasować, jest klasa android w libsysutils (trochę za mało miejsca):
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;
};
Mój kikut wygląda tak:
class MyClass: public NetlinkListener {
public:
MyClass();
virtual ~MyClass();
int start();
int stop();
protected:
virtual void onEvent(NetlinkEvent *evt);
};
Wszystkie metody w MyClass są zaimplementowane (jako puste kody)
Nie mogę skompilować biblioteki współdzielonej -frtti. Czy jest jakiś sposób na obejście tego?