title: What's the meaning of gcc '-c' and gcc '-o'?
body: <p>When I created makefile, I wrote</p>
  
  <pre><code>test: main.o 1.o
    gcc -o test main.o 1.o
  
  main.o: main.c a.h
    gcc -c main.c
  
  1.o: 1.c a.h
    gcc -c 1.c
  </code></pre>
  
  <p>but I don't get why I use -o in the first line and -c in the second, third line.
  What's the difference between them??</p>