What’s .a files in C programming in linux ? Is it library file ? Here how compiler find that -lm is pointing to the file libm.a , and -lsocket as libsocket.a ? And if we add the header file to the program, Is it must we want to mention library while compiling ? Answer As Ignacio says, .a files are