Link errors occur during the Link phase of a programs compilation. First the source code is compiled, then it is Linked with libraries and resources. A source of much mystery (Pun Intended!). In the Olden Days (and still in predominantly command line environments such as gcc), a makefile determined the compile and link order. IDE's achieve this (to my mind) much better visually. That way you don't need to learn an additional framework to the language you are developing in.