【C++编译问题】

C++编译时显示undefined reference to xxx

  1. 我的代码
EPollPoller::EPollPoller(EventLoop *loop)
    : Poller(loop)
    , epollfd_(::epoll_create1(EPOLL_CLOEXEC))
    , events_(kInitEventListSize)
{
    if (epollfd_ < 0)
    {
        LOG_FATAL("epoll create error:%d\n", errno);
    }
}
class Poller : noncopyable
{
public:
    using ChannelList = std::vector<Channel *>;
    Poller(EventLoop *loop);
    virtual ~Poller() ;
}

  1. 具体报错

/usr/bin/ld: CMakeFiles/muduoTest.dir/Poller.o: warning: relocation against _ZTV6Poller' in read-only section .text’
/usr/bin/ld: CMakeFiles/muduoTest.dir/EPollPoller.o: in function EPollPoller::EPollPoller(EventLoop*)': /home/jok/01wyc-work/01share/01moduo/muduolib/EPollPoller.cc:25: undefined reference to Poller::~Poller()’
/usr/bin/ld: CMakeFiles/muduoTest.dir/EPollPoller.o: in function `EPollPoller::~EPollPoller()':

  1. 解决办法

在虚函数的声明处,加上{}

virtual ~Poller() ;

改为

virtual ~Poller() {};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值