No. Not unless you can find the libraries somewhere. Otherwise this is a once only operation. Just build it, go eat or take a nap, then come back when it is done. All changes after that will be incremental.
Sorta. If a change is only in a .h file you will need to find the obj files of all related files and delete them.
Other wise you just need to do a full compile once.
A super simplied explaination of what's going on.
When you compile you take all of the source code files and turn them into machine code (1s and 0s the computer understands). For each source file there will be a .o file that is the machine code (along with some other info for the next step). However, that all needs to be combined and simular refereneces need to be matched, etc... So a linker is used to go through the .o files and figure out how to piece them all together into an exe.
When you make a change in the future it will only compile the appropiate object files and relink.