Статические библиотеки не имеют такого рода зависимостей. Когда библиотека построена, она никак не связана с временем выполнения, все, что она знает, это объявления функций в файлах заголовка реализации, которые не предоставляют никакой информации о версии.
Однако, предполагая, что библиотека находится в формате MS, вы должны видеть, какие флаги библиотеки были созданы, открыв ее в текстовом редакторе (сделайте резервную копию, прежде чем это сделать). Вы ищете строку, как это:
cl.exe cmd -nologo -MTd -W3 -Gm -GX -ZI -DWIN32 -D_DEBUG (more stuff)
Флаг -MTd говорит вам, что библиотека была собрана с поддержкой многопоточных отладки. ,
Я встретил следующую ошибку при статической привязке к foo.lib, сообщение об ошибке - предупреждение LNK4098: defaultlib 'LIBCMT' конфликтует с использованием других libs; use/NODEFAULTLIB: библиотека, любые идеи, что является основной причиной? – George2
Да, одна из библиотек и/или приложений была построена с поддержкой многопоточной поддержки, а другая - нет. Вам нужно собрать все библиотеки и приложения с одной и той же моделью потоков. – 2009-04-30 10:39:12
Я в замешательстве, вы только что упоминали, что static lib не имеет ничего общего с библиотекой времени выполнения (debug/release/single threaded/multi threaded), почему компоновщик считает, что статическая библиотека зависит от другой модели выполнения потоковой модели и сообщает об этой ошибке? Любые методы для просмотра какой библиотеки времени выполнения статическая библиотека встроена? – George2