Меня беспокоит "статически скомпилированная" часть. Если библиотеки были скомпилированы в библиотеки DLL, есть большая вероятность, что они будут работать, но, поскольку вы статически связываете, компилятор MINGW сделает определенные предположения, которые верны в отношении его библиотеки времени выполнения, но могут или не могут быть верными для библиотека времени выполнения MSVC. Учитывая, что вы просите код, скомпилированный с одним компилятором, ссылаться на RTL другого компилятора, существует вероятность беспорядка.
Одно из преимуществ, которое у вас есть, заключается в том, что вы имеете дело с C здесь, а не с C ++ - с библиотекой C ++ у вас не будет шансов на эту работу, в C это просто возможно. Я бы очень внимательно следил за тем, чтобы выравнивание структуры было одинаковым для всех компиляторов, и просто попробую. Если компоновщик жалуется на пропущенные символы, значит, вы получили ответ о том, насколько действительно совместимы RTL, если с ним все в порядке, хорошо, попробуйте.
Все это говорит о том, что я работал над проектом C ++, в котором одна из библиотек C была скомпилирована с GCC (я думаю, что это был MINGW) по тем же причинам, о которых вы упомянули. Это работало, программное обеспечение работало нормально и использовалось вот так довольно долго. Основная проблема, с которой мы столкнулись, заключалась в том, что некоторые сборки библиотеки не позволили бы связать исполняемый файл MSVC с отладочной информацией; тщательная настройка командной строки MINGW устранила эту проблему.