warning LNK4006 这个烂问题终于搞掉了!
2017-11-15 13:56
337 查看
就写了一个简单的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中定义,哗~~整个世界清静了。。。
已在 NomadTimer.obj 中定义;已忽略第二个定义。
除了有个警告很碍眼其实暂时也没发现什么很严重的问题,但是每次都警告我很不爽。。。
google了好久都没找到解决办法,其他人发出的帖子一般都是说设置问题之类,但是我也按照他们说的改过设置了,就是不对头,后来自己琢磨琢磨,警告中说重复定义,msdn上面也说去除多余的定义就ok了,回头看看自己的代码,是不是因为static std::vector<Timer*> mTimers的定义也放在头文件的缘故?这样其他文件包含这个头文件的时候就会找到这个定义了,多个文件包含当然会发现多个定义了,于是将这个 static成员放cpp中定义,哗~~整个世界清静了。。。
相关文章推荐
- warning LNK4006 这个烂问题终于搞掉了
- AMD处理器安装RVDS2.2破解方法 (找了很久,该贴终于解决这个问题)
- 郁闷,这个问题从昨天到今天终于解决了
- MFC调用CFileDialog之后目录居然会改变,调试了好久终于发现是这个问题
- 安装Mysql提示1045错误解决方法(这个问题我纠结好几个小时,终于解决了!)
- 运行VS2010后CPU占用率高,鼠标指针旁的沙漏一闪一闪,终于解决这个问题了!
- 终于解决了ora-00119和ora-00132这个问题
- 终于解决了这个怪问题
- “在系统启动时至少有一个服务或驱动程序产生错误”,终于解决这个其实很简单又很烦人的问题
- 终于解决了这个怪问题
- [置顶] 终于解决了ora-00119和ora-00132这个问题
- 呵呵,终于解决这个问题了
- 终于把:无法命中断点,还没有为文档加载任何符号这个问题解决了!
- 今天在使用iscroll4 做一个简单触屏滚动demo,发现上下拖动的时候总是会回弹,不能看到下面的内容.这个问题苦恼了很久,终于解决
- 靠,终于搞定这个恶心的问题,java.lang.NoClassDefFoundError: org/jaxen/JaxenException
- 终于解决了这个问题,看了一天了。。。
- 搞了一天终于实现了 DataGrid 中的多国语言的问题,采用了中文向其他语言自动翻译的方法,其实不难,主要是想法(本文不涉及这个计算机技术问题,仅以此作为标题)
- 我终于也碰到volatile这个问题了
- 从多方查找资源并测试终于解决了问题,特记录下。 其实如果在安装的时候,正确的安装,就不会出现下面的信息了. 如在Linux下安装,提示密码的时候,输入Root账号的密码就不会出现这个问题了!
- 临睡前终于解决了这个奇怪的问题