warning LNK4006 这个烂问题终于搞掉了!

就写了一个简单的Timer计时器类,单独编译完全没问题,警告什么的都没有,但是一link就出岔子,每次都提示 xxx.obj : warning LNK4006: "private: static class std::vector<class Nomad::Timer *,class std::allocator<class Nomad::Timer *> > Nomad::Timer::mTimers" (?mTimers@Timer@Nomad@@0V?$vector@PAVTimer@Nomad@@V?$allocator@PAVTimer@Nomad@@@std@@@std@@A) 已在 NomadTimer.obj 中定义;已忽略第二个定义。
除了有个警告很碍眼其实暂时也没发现什么很严重的问题,但是每次都警告我很不爽。。。
google了好久都没找到解决办法,其他人发出的帖子一般都是说设置问题之类,但是我也按照他们说的改过设置了,就是不对头,后来自己琢磨琢磨,警告中说重复定义,msdn上面也说去除多余的定义就ok了,回头看看自己的代码,是不是因为static std::vector<Timer*> mTimers的定义也放在头文件的缘故?这样其他文件包含这个头文件的时候就会找到这个定义了,多个文件包含当然会发现多个定义了,于是将这个 static成员放cpp中定义,哗~~整个世界清静了。。。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值