【问题标题】:What's a good way to resolve Runtime library conflicts?解决运行时库冲突的好方法是什么?
【发布时间】:2013-07-20 21:09:17
【问题描述】:

我有一个相当大的 c/c++ CGI 项目,它引用了几个外部库(OpenSSL、FastCGI、Boost 等)。我验证了每个库都是用 /MT 构建的,就像我们的主要可执行项目一样。但是,当包含某些标头(例如,FastCGI 标头)时,我会收到数百个链接器错误,如下所示:

错误 226 错误 LNK1169:找到一个或多个多重定义的符号

错误 121 错误 LNK2005:“受保护:__thiscall std::basic_ios >::basic_ios >(void)”(??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ ) 已在 libfcgi.lib(libfcgi.dll) libcpmt.lib(cout.obj) 中定义

错误 208 错误 LNK2005:“受保护:__thiscall std::basic_ios >::basic_ios >(void)”(??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ ) 已在 libfcgi.lib(libfcgi.dll) * CIL 库中定义 ( CIL 模块 *)

我再次查看了libfcgi并验证了/MT并重新编译无济于事。我不知所措......这些图书馆冲突来自哪里?解决此类链接器错误的好方法是什么? (Visual Studio 2012)

【问题讨论】:

    标签: c++ visual-studio-2012 fastcgi crt microsoft-runtime-library


    【解决方案1】:

    将 FastCGI 编译为静态库解决了该问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-15
      • 1970-01-01
      • 2019-10-05
      • 2013-04-17
      • 1970-01-01
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多