Мингв не виноват. С помощью компоновщика (GNU) статические библиотеки должны быть перечислены в обратном порядке зависимостей.
g++ -o program.exe libpuchuu.a -lSDL
не будет работать, если что-то в libpuchuu.a зависит от чего-то в libSDL.
Это должно быть g++ -o program.exe -lSDL libpuchuu.a
Если у вас есть циклическая зависимость, вам даже нужно перечислить их дважды. Рассмотрим, например, libfoo.a зависит от содержимого в libbar.a, а libbar.a зависит от чего-то в libfoo.a. Вам нужно будет сделать: g++ -o fooprogram libbar.a libfoo.a libbar.a