Я уверен, что есть ряд причин, по которым это может произойти - самая худшая, которую я когда-либо обнаруживал, была при попытке интегрировать несколько статических библиотек (наших), которые изначально были DLLS (на самом деле, мы строим проекты как DLL и статические библиотеки).
Наша C ++ / CLI DLL использовала статические версии этих библиотек (чтобы избежать проблем с зависимостями DLL, которые вызывали проблемы с загрузкой ASP.NET при использовании C ++ / CLI Dll), и изначально обнаруживала ту же ошибку компоновщика.
Проблема оказалась в использовании макроса AFX_MANAGE_STATE (AfxGetStaticModuleState ()), который был необходим, когда код был скомпонован как DLL, но фактически не нужен для статического вызова библиотеки.
Чтобы решить эту проблему, я добавил следующий код в stdafx.h каждого проекта.
#ifdef OMUTILITIES_LINK_STATIC
#undef AfxGetStaticModuleState
#define AfxGetStaticModuleState AfxGetModuleState
#endif
Это, конечно, может не быть вашей конкретной проблемой. Но в конечном итоге я понял, что включил параметр / VERBOSE для компоновщика и посмотрел, кто, что, где и когда загружал библиотеки времени выполнения. (Свойства проекта / Свойства конфигурации / Компоновщик / Показать прогресс в vs2005)