You have source files
main.c. It is reasonable to suppose that
deck.c each define functions, at least one of which is called by something in
main.c, else there would be no need for your
header.h. Presumably, the functions named in your link errors are among those.
attempts to compile the code in
main.c and link it to form a complete program, but it is not enough for a complete program because some of the needed functions are defined (implemented) in other source files. That's what the linker is complaining about.
If you want to compile
main.c to an object file but not link it, then you need the
gcc -c main.c
If you want to build a complete program with one run of
gcc then you must specify all the needed sources:
gcc main.c deck.c card.c
In the latter case, you might also want to use the
-o option to specify a name different from
a.out for the executable.