Undefined reference errors when linking GLFW with MinGW

So I understand that this error is happening in the linking stage of the compilation process as the object files compile fine. While reading this post I saw that mmozeiko gave commented a gcc command where the usual link flag -l was ignored so instead of gcc test.c -lglfw3 he wrote gcc test.c libglfw3.a I tried this and below and behold, it fixes my issue. Why is this the case? I understand that this is something to do with gcc and not glfw so I won’t be offended if no one responds.