我有一个相当大的 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并重新编译无济于事。我不知所措......这些图书馆冲突来自哪里?解决此类链接器错误的好方法是什么?(视觉工作室 2012)