Есть ли способ сделать статические библиотеки, созданные в Microsoft Visual Studio, независимо от используемого CRT (с поддержкой отладки/без него)?C++ visual studio libraries
Я имею в виду, что для простой библиотеки C можно сгенерировать код с помощью gcc
, а затем использовать ту же статическую библиотеку в визуальной студии. Полученный файл library.a
полностью не зависит от /MT
или /MDd
коммутаторов и не приводит к ошибкам предупреждения/связывания.
По сравнению с поведением по умолчанию Visual Studio вам придется создавать две версии одной и той же библиотеки - для режимов Debug/Release независимо. Если вы попытаетесь использовать версию Release
в конфигурации Debug или наоборот, это приводит к уродливым предупреждениям (warning LNK4098: defaultlib "LIBCMT" ...
), но иногда они не компилируются из-за разных сроков выполнения?
Есть ли способ избежать этого? Или, наверное, я что-то делаю неправильно?
Совместимость сгенерированного кода зависит от еще большего количества параметров, например. обработка исключений, представление указателя функции-члена. Хотелось бы, чтобы вокруг был способ (помимо распространения только для заголовков). – peterchen