title: The -l option in gcc
body: <p>I have just began reading the book: <a href="http://www.apuebook.com/apue3e.html" rel="nofollow noreferrer">Advanced Programming in Unix Environment</a> and try to compile the first example code, just the same as in <a href="https://unix.stackexchange.com/questions/105483/compiling-code-from-apue?newreg=714c9fd4f8f04054ad45278797189d63">this thread</a>.
  Although the problem for the compilation is solved using the command:</p>
  <pre>
  <code>
  gcc -o myls myls.c -I SCADDRESS/include/ -L SCADDRESS/lib/ -lapue
  </code>
  </pre>
  <p>I looked it up in the GCC manual and can't find what does the gcc option -lxxx mean, where xxx stands for the base name of a header file(in this case, it's apue.h). According to the manual, xxx should be some library files, either end with .so for shared object files, or with .a for static libraries.</p>
  <p>Can anyone explain it a little bit? Thx in advance:)</p>