¿Cuál es la diferencia entre include y link cuando se vincula a una biblioteca?

¿Qué incluye REALMENTE y enlace REALMENTE? ¿Cuáles son las diferencias? ¿Y por qué necesito especificar ambos? Cuando yo escribo#include math.h y luego escribe-lm para compilarlo, ¿qué hace#include math.h y-lm hacer respectivamente?

Según tengo entendido, al vincular una biblioteca, necesita su archivo .h y su archivo .o. ¿Esto sugiere#include math.h significa tomar el archivo .h mientras-lm tomar en el archivo .o?

Respuestas a la pregunta(4)

Su respuesta a la pregunta