Каков хороший способ разрешения конфликтов библиотеки времени выполнения?

У меня есть довольно большой проект 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)


person arao6    schedule 20.07.2013    source источник


Ответы (1)


Компиляция FastCGI как статической библиотеки устранила проблему.

person arao6    schedule 30.07.2013