Forget about Mac and Linux for a moment, since you already seem to have
problems on Windows.
It looks as if your makefile is incorrect about some dependencies. You
might also check that the manifest of the project has been set up
although a manifest is not strictly required in your case. When you
build your project from within VS you don't have to worry about this.
It is probably not a good idea to simply compile and link your project
using a hand written makefile, because different platforms might need
other tools as well (like the manifest tool to bind the executable code
to the proper runtime libs) and you probably end up doing a lot of OS
dependent dispatching inside the makefile. Consider generating your
build environment with cmake (www.cmake.org).