Source: https://upsilon.cc/~zack/teaching/1819/cproj/cours-06-linking.pdf