The main cause of this problem is the import libraries for the DLL for another version of the DLL used.
When you created the application, you used the import library so that the linker finds the SFML functions that your application calls. However, the DLL itself does not contain one or more functions for which there are stubs in the import library.
When you create an application that inevitably loads the DLL, a three-step process occurs:
- Code compilation
- Code binding
- Code run
The whole compiler takes care that the program is syntactically correct. This worked without errors.
The linker reference determines whether the functions that you call exist. Here the situation becomes complicated, since there are function stubs in the import library, and this will satisfy the linker. The import library tells the linker: "Yes, this function is located here in this DLL, so trust me." It also worked error free for you.
(Note that this is different from a script other than a DLL where the linker is actually looking for the function itself, not the stub).
However, the actual functions themselves are in another module (DLL), and the only time your application can determine their existence is when you run the program. Here you are stuck right now.
So, first you need to make sure that the import libraries that you use when creating your application match the DLL loaded at runtime. If you still get the error message, contact where you got the DLL and ask how to get the appropriate import libraries.
In addition, there are ways to create an import library from a DLL if, for some reason, you cannot get the import libraries. I donβt know all the details on how to do this manually for MingW, but the information should be available somewhere on the Internet.