dir1 has dir2, file1.c and file1.h.
dir2 has file2.c
Now, if I want to access a function defined in file1.c in file2.c, I need to declare it in file1.h and inclu
including the .h files is not enough because it only includes the prototype of that function not the definition of the function and the definition of the function is in a seperate .c file.
one way to fix it is just type:
gcc -o out file1.c file2.c
or as Nate says you could seperate the compilation process and the link process