I assume you included the needed libraries. You however probably didn't know you need to include them in a specific order.
Simply put each library has a shopping list of functions it needs from other libraries. Every time it needs a new function it adds it to the list. When it goes over a library it puts the functions on the list into the shopping basket. Now imagine if you put something onto the list after you already passed by the library that provides it? It doesn't get put into the basket because you can't turn around
As a rule of thumb, you must always specify libraries with the most dependencies at the beginning of the list and libraries with the least dependencies at the end.
You could imagine it as an invisible "depends on the following libraries" in between each library in the list:
sfml-graphics
depends on the following libraries sfml-window
depends on the following libraries sfml-system
depends on the following libraries glu32 .....
When you use sfml-network, you find out it is missing the definition of sf::String stuff as seen in the error messages. Where is sf::String stuff defined? The documentation says in sfml-system. Because of this sfml-network must be linked
before sfml-system so the list will look like:
sfml-network
depends on the following libraries sfml-graphics
depends on the following libraries sfml-window ...
I just typed all of that so you know for future libraries you might use. For SFML just remember this order if you use everything:
sfml-graphics
sfml-audio
sfml-network
sfml-window
sfml-system
It works for me all the time.