STL в виде dll + статическая либа => проблема линковки
От: Максим Бабицкий Россия  
Дата: 25.08.06 11:43
Оценка:
Доброе время суток,

Я работаю над проектом под Windows, использую VC 7.1. В проекте используется STL и wxWidgets. Последняя скомпилирована в режиме wxUSE_STL. Используется Multithreaded-DLL версия CRT. Проект включает несколько статически прилинковываемых библиотек использующих STL. До недавнего времени wxWidgets прилинковывался статически. Теперь понадобилось собрать его в виде DLL. И возникла следующая проблема:

Собственно со сборкой wxWidgets как DLL проблем не возникло, примеры к ней тоже собрались нормально и работают.
Мой проект тоже компилируется без ошибок и предупреждений, но линкер вываливает кучу одинаковых сообщений, о том, что все используемые шаблонные методы STL уже определены в одной из моих статически прилинковываемых библиотек.
(например symbol "std::vector<double>::vector(...) is already defined in mylib.lib"). Ругань идет только на шаблонные методы из STL и ни на что больше. Поиск по rsdn выдал несколько похожих вопросов, но ответов было только два — либо проверить, что все проекты используют одинаковые версии CRT и что используется Multithreaded-DLL CRT(в моем случае это точно верно, уже перепроверил), либо же предлагается использовать опцию линкера FORCE:MULTIPLY, что вроде бы небезопасно.

Как решить проблему?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.