To link, in the context of computer programming, is to (directly or indirectly) use a linker to combine object files and libraries (both containing object code) into an executable.

Unless the compiler is told otherwise, it typically will feed a temporary copy of the object file corresponding to your source code along with the default set of libraries to the linker to automatically produce an executable.

Failures during linking usually are due to unresolved symbols which were referenced in the body of the object code, but not actually defined. Fixing a link error usually involves writing the missing code corresponding to the symbol, adding missing libraries, or fixing spelling errors in the source code. It is also possible to have duplicate symbol errors, but in many cases, the linker can fix this by omitting a redundant object file.