C++编译各个文件之间的关系以及g++命令

C++新手,写过小的程序,没有写大程序的经验,现在在看别人写的稍微大一些的程序。
我看了一下基本是三种文件main源文件,function源文件和头文件还有就是一种目标文件,
我知道头文件不需要编译,那编译的时候是只需要编译main源文件吗,用的是g++编译器,
还有就是每个文件前面 "include" 是怎么包含的,说的能具体些吗?编译从头到尾的过程
其中的文件之间的调用关系,g++编译的命令,不胜感激~

头文件,也是需要编译,或者预编译的

编译,只要是指定的源文件和头文件,都会编译的。g++ 编译,需要你了解 makefile 文件。

g++的时候,会先把h文件预处理到cpp文件中,然后再编译cpp文件。所以h文件需要#include