小编Jon*_*n L的帖子

使用-fno-rtti编译的共享库中的子类

我试图从使用-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)

c++ subclass rtti

8
推荐指数
1
解决办法
1608
查看次数

标签 统计

c++ ×1

rtti ×1

subclass ×1