Undefinierter Symbolfehler bei Verwendung einer Header-Datei

Ich erhalte die folgende Fehlermeldung und kann für mein ganzes Leben nicht herausfinden, was ich falsch mache.

$ 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

Haupt c

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

main(){
    wtf();
}

wtf.h:

void wtf();

wtf.c:

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

Now, wenn ich die gesamte Funktion in die Header-Datei einbinde, anstatt nur die Signatur, ist dies in Ordnung, sodass ich weiß, dass wtf.h enthalten ist. Warum sieht der Compiler wtf.c nicht? Oder vermisse ich etwas?

Grüße