Como um compilador C descobre que -lm está apontando para o arquivo libm.a?

O que é um arquivo .a na programação C no linux? É um arquivo de biblioteca?

To merge with the math library libm.a you would type

 cc -o program_name prog.c -lm

when you compile the program. The -lm means: add in libm. If we wanted to add in the socket library libsocket.a to do some network programming as well, we would type

 cc -o program_name prog.c -lm -lsocket

and so on. 

Aqui, como o compilador descobre que -lm está apontando para o arquivo libm.a e -lsocket como libsocket.a?

E se adicionarmos o arquivo de cabeçalho ao programa, devemos mencionar a biblioteca durante a compilação?

questionAnswers(3)

yourAnswerToTheQuestion