Qual é a diferença entre include e link ao vincular a uma biblioteca?

O que inclui e vincula REALMENTE faz? Quais são as diferenças? E por que preciso especificar os dois? Quando escrevo#include math.h e depois escreva-lm compilá-lo, o que faz#include math.h e-lm fazer respectivamente?

No meu entendimento, ao vincular uma biblioteca, você precisa do arquivo .h e do arquivo .o. Isso sugere#include math.h significa pegar no arquivo .h enquanto-lm pegue o arquivo .o?

questionAnswers(4)

yourAnswerToTheQuestion