我试图从使用-fno-rtti编译的共享库中继承子类.不幸的是,我的代码库中的其他库需要-frtti.结果我得到链接错误,因为超类没有typeinfo结构.
正常编译中收到错误:
out.o: in function typeinfo for MyClass:myclass.cpp(.data.rel.ro.<cpp magic>): error: undefined reference to 'typeinfo for NetlinkListener'
Run Code Online (Sandbox Code Playgroud)
我想要子类的类是libsysutils中的一个android类(为空间剪掉一点):
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;
};
Run Code Online (Sandbox Code Playgroud)
我的存根看起来像:
class MyClass: public NetlinkListener {
public:
MyClass();
virtual ~MyClass();
int start();
int stop();
protected:
virtual void …Run Code Online (Sandbox Code Playgroud)