离大谱

用VS+Boost写程序的时候,Intellisense没有给出任何报错,但是编译的时候给出如下信息:

LNK2038: mismatch detected for 'boost_log_abi': value 'v2s_mt_nt6' doesn't match value 'v2s_mt_nt62'

到网上转了一圈,看到别人遇到了类似问题,但又不完全一样,包括:

  • 编译Boost库的环境与编译应用程序的环境不一致(v2s_mt_nt5/v2s_mt_nt6
  • 用动态库链接静态对象文件(v2_mt_nt6/v2s_mt_nt6

但我这个情况,库版本没问题,编译环境也完全一致,报错也跟上述有点不一样。。。

地铁老人手机.jpg

找了好久原因,后来想起之前遇到过相同的问题,从哪里找到的解决方案忘记了,但方法奏效了:原因是我将其他库(某不愿透露姓名的PMDK)和Boost一起使用,然后可能是两个库使用了相同的宏变量,把Boost的头文件include放在最前面就好了。

如果有人遇到了相同的问题,可以考虑试一下交换include顺序,可能就是不同库碰巧使用了同一宏变量呢= =

标签: none

添加新评论