Ya he solucionado el problema.
Tenía la idea de que lo que causaba ese problema era una opción que se pasaba al compilador.
Así que busqué en la página gcc.gnu.org la lista de todas las opciones que se podían pasar y leyendo encontré que si se quería pasar excepciones a travez de varias bibliotecas compartidas (dlls) no debía usar en el linker la opción -static-libgcc ni -static-libstdc++ porque éstas bloqueaban las excepciones.
Así que solo quité las opciones del linker y listo asunto solucionado.
Gracias invancea96 por las respuestas.
Tenía la idea de que lo que causaba ese problema era una opción que se pasaba al compilador.
Así que busqué en la página gcc.gnu.org la lista de todas las opciones que se podían pasar y leyendo encontré que si se quería pasar excepciones a travez de varias bibliotecas compartidas (dlls) no debía usar en el linker la opción -static-libgcc ni -static-libstdc++ porque éstas bloqueaban las excepciones.
Así que solo quité las opciones del linker y listo asunto solucionado.
Gracias invancea96 por las respuestas.