Undefined reference to `main' when using makefile
<p>I have four files <code>list.h</code> <code>list.c</code> <code>test_list.c</code> <code>Makefile</code></p>

<p><strong>list.h</strong></p>

<pre><code>#ifndef List_H
#define List_H
#endif
/*nothing else*/
</code></pre>

<p><strong>list.c</strong></p>

<pre><code>#include "list.h"
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
/*nothing else*/
</code></pre>

<p><strong>test_list.c</strong></p>

<pre><code>#include "list.h"
#include &lt;stdio.h&gt;   
int main(){
    return 0;
}
/*nothing else*/
</code></pre>

<p><strong>Makefile</strong></p>

<pre><code>CC=cc
CXX=CC
CCFLAGS= -g -std=c99 -Wall -Werror

all: list test_list

%.o : %.c
    $(CC) -c $(CCFLAGS) $&lt;

test_list: list.o test_list.o
    $(CC) -o test_list list.o test_list.o

test: test_list
    ./test_list

clean:
    rm -f core *.o test_list
</code></pre>

<p>when I input make in shell, here comes the error:</p>

<blockquote>
  <p>/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_line): relocation 0 has invalid symbol index 2
      /usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crt1.o: In function <code>_start':(.text+0x18): undefined reference to</code>main'
      collect2: error: ld returned 1 exit status
      make: *** [list] Error 1</p>
</blockquote>

<p>What is wrong here?</p>