我有一个相当大的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)
答案 0 :(得分:0)
将FastCGI编译为静态库解决了这个问题。