什么是解决运行时库冲突的好方法?

时间:2013-07-20 21:09:18

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

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

  

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

     

错误121错误LNK2005:“protected:__ thishisall 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:“protected:__ thishisall 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)

1 个答案:

答案 0 :(得分:0)

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