【问题标题】:LNK2038: mismatch detected for 'boost_log_abi': value 'v2s_mt_nt5' doesn't match value 'v2s_mt_nt6'LNK2038:检测到“boost_log_abi”不匹配:值“v2s_mt_nt5”与值“v2s_mt_nt6”不匹配
【发布时间】:2016-06-24 22:33:31
【问题描述】:

创建包含 boost 库的单独头文件后,我尝试将其包含在现有项目中。

但它显示以下错误:

 ::  Error  15  error LNK2038: mismatch detected for 'boost_log_abi':
 value 'v2s_mt_nt5' doesn't match value 'v2s_mt_nt6' in BoostLogger.obj 
 E:\Projects\native\dcnotificationserver\loggerutil.obj  ::

我知道以前的项目适用于从 Windows XP 到 Current Windows OS (i.e.)10 。

但我从 Windows XP 中了解到增强支持。

有什么问题?

如何解决?

我认为是windows版本的问题?

如需更多信息,请咨询我。

编辑:
我正在使用:
编译器:msvc 10
增强版:1.60
视觉工作室 2010

【问题讨论】:

    标签: c++ windows visual-studio boost compiler-errors


    【解决方案1】:

    在将 BOOST 升级到 1.60 和 Visual Studio 升级到 2015 后,我遇到了类似的问题。

    我通过将预处理器中的 _WIN32_WINNT 定义更改/定义为 0x601 和 0x501 来解决它。

    我很确定这意味着...支持 Win7 和更高版本的 XP。

    【讨论】:

    • 没有。它必须支持 Windows XP。所以,我使用 boost 1.58
    • 今天使用 -D_WIN32_WINNT=0x0600 为我修复了它。使用升压 1.63.0。我想我正在编译的项目是很久以前构建的。
    【解决方案2】:

    还有另一种解决方案,无需更改为旧版本。

    您可以使用任何构建的 boost 库:

    b2 link=static runtime-link=static --toolset=msvc-10.0 define=BOOST_USE_WINAPI_VERSION=0x0500

    当我使用 MS Visual Stdio 2010 时,它解决了我的问题。你也可以试试这个。

    【讨论】:

    • 是的。你说的对。我已经完成了。它对我有用。无论如何谢谢。
    【解决方案3】:

    据我所知,这个问题有两种解决方案。

    1) 使用 boost 1.58 而不是 boost 1.60
       [注意:您不能使用最新功能。]

    2) 否则您可以使用 cmd 提取 boost 1.60 中的文件:
        b2 release define=BOOST_USE_WINAPI_VERSION=0x0501

    更多详情请看这里:
    http://www.boost.org/users/history/version_1_60_0.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-23
      • 2018-05-05
      • 2019-04-17
      • 2015-05-07
      • 2021-01-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      相关资源
      最近更新 更多