In your compiler, you will probably have the option of doing a static link or a dynamic link.
With a static link, all externally referenced libraries will be included in your final exe. This will obviously increase the size of your final exe somewhat, but at least it will run on the target machine.
With a dynamic link, only the main code base is compiled into the exe, so if you plan to run it on a different machine, you gotta make sure the target machine has all the required libraries. You may have to distribute libraries with your program for it to work on other machines which in turn, may lead to some copyright issues (if you do it on a large scale!!).
The option of recompiling shouldn’t really arise when running on different machines (expect maybe with different OSs). If the target machine has all the required libraries, then a dynamic link should suffice.