Error de símbolos indefinidos al usar un archivo de encabezado

Recibo el siguiente error y por mi vida no puedo entender lo que estoy haciendo mal.

$ gcc main.c -o main

Undefined symbols:
  "_wtf", referenced from:
      _main in ccu2Qr2V.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

C Principal:

#include <stdio.h>
#include "wtf.h"

main(){
    wtf();
}

wtf.h:

void wtf();

wtf.c:

void wtf(){
    printf("I never see the light of day.");
}

Ahora, si incluyo la función completa en el archivo de encabezado en lugar de solo la firma, cumple bien, así que sé que wtf.h está siendo incluido. ¿Por qué el compilador no ve wtf.c? ¿O me estoy perdiendo algo?

Saludos.

Respuestas a la pregunta(2)

Su respuesta a la pregunta