Некоторые проекты предоставляют единый набор двоичных файлов Windows для библиотек C (и, возможно, C ++ - не уверен). Например, см. Ссылки на правой стороне этой страницы, связанной с libxml .
Я почти уверен, что нет никакого способа конвертировать между файлами VC ++ .lib и MinGW GCC .a, поэтому называть их «Windows», а не «Microsoft», кажется, немного вводящим в заблуждение. Но я также удивлен, что нет очевидной необходимости в разных двоичных файлах для разных версий VC ++.
Кажется, я помню, много лет назад, были проблемы с написанием плагинов для музыкальной программы в стиле трекера (Jeskola Buzz), потому что эта программа использовала VC ++ 6, а я обновился до VC ++ 7. Я не помню точную проблему - возможно, она была частично связана с DLL, но я знаю, что не нужно заботиться о версии VC ++. Я думаю, что проблема связана с предоставленными .lib файлами и, возможно, также с библиотеками времени выполнения, с которыми они связаны. Впрочем, это было очень давно, поэтому все немного расплывчато.
В любом случае, могут ли библиотеки , скомпилированные одной версией MS VC ++, быть связаны с проектами, созданными с другой версией? Какие ограничения применяются, если таковые имеются?
Мне интересны библиотеки C и C ++, которые будут вызываться из проектов C ++ (я редко использую C, за исключением библиотек C, вызываемых из C ++).