=============================================================================================
#include "mytool1.h"
#include "mytool2.h"
int main(int argc,char **argv)
{
mytool1_print("hello");
mytool2_print("hello");
}
--------------------------------------------

gcc -c main.c
gcc -c mytool1.c
gcc -c mytool2.c
gcc -o main main.o mytool1.o mytool2.o
--------------------------------------------

main:main.o mytool1.o mytool2.o
gcc -o main main.o mytool1.o mytool2.o
main.o:main.c mytool1.h mytool2.h
gcc -c main.c
mytool1.o:mytool1.c mytool1.h
gcc -c mytool1.c
mytool2.o:mytool2.c mytool2.h
gcc -c mytool2.c

---------------------------------------------
main:main.o mytool1.o mytool2.o
 gcc -o $@ $^
main.o:main.c mytool1.h mytool2.h
 gcc -c $<
mytool1.o:mytool1.c mytool1.h
 gcc -c $<
mytool2.o:mytool2.c mytool2.h
 gcc -c $<

---------------------------------------------
main:main.o mytool1.o mytool2.o
 gcc -o $@ $^
.c.o:                                 缺省  .o文件都是依赖于相应的.c文件的
 gcc -c $<