Non chiamare "librerie" i file .h

Quelli sono semplicemente file header che non contengono codice.

Il codice è contenuto nelle librerie che sono i file (.lib, .a) che si forniscono al linker per risolvere le chiamate contenute nel file oggetto.

La libreria in questione la indichi con

-lm