0

我有一个相当大的 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)

4

1 回答 1

0

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

于 2013-07-30T21:47:56.130 回答