linkagem

What is the difference between a Windows and Linux compiler and executable

When compiling a simple program for Linux, the compiler generates an executable that only works on Linux, but when compiling ... In which part of the compilation do the differences begin ? it is in the linkage part ? and why are there such differences ?

What is the difference between build and linkage?

Have I seen some representations where the Build is in the same place as when the linkage happens, are the two the same thing?