Как правильно собирать такое
Проще всего -- установив -dev пакет в своей ОС:
apt-get install libfcgi-dev
gcc -o main main.c -lfcgi -pthread
Если установить -dev не позволяет религия или другие ограничения, нужно указать компилятору откуда брать libfcgi, так же как вы указали откуда брать fcgiapp.h:
gcc -I /home/user/lessons/tests/include -L/home/user/lessons/tests/lib -o main main.cpp -ldl -lfcgi -lpthread
Путь ...tests/lib -- условный, вам надо будет указать каталог в который установлена libfcgi.a либо libfcgi.so
-lpthread
Вместо -lpthread правильнее писать -pthread: -lpthread только линкует с libpthread, -pthread в добавок к этому определяет макрос _REENTRANT для исходников которые компилируются с этой опцией.